代码点火器”;新闻部分“;教程问题


Codeigniter "News section" tutorial issue

我的URI有问题。我试着浏览了一下帖子,但没有找到答案。

教程可以在这里找到:http://codeigniter.com/user_guide/tutorial/news_section.html

基本上,我复制了所有内容,效果很好,但有一点我没有知道是我的浏览器还是我错过了配置。

在"views/news/index.php"中,我有以下教程中的代码:

<h2><? echo $news_item['title'] ?></h2>
<div id="main">
    <? echo $news_item['text']?>
</div>
<p>[b]<a href="news/<? echo $news_item['slug']?>">View Article</a>[/b]</p>

现在的问题是,当我在浏览器上查看源html时,我看到的链接是:

查看文章

我认为这是正确的。但当我点击时,它指向:

localhost/CI/index.php/news/news/firstnews

正如您所看到的,"新闻"在URI中重复了两次。看起来浏览器只是将href值附加到打开的URI,而不是将其清理到index.php并添加到那里。

我尝试从href值中删除"news"位,它运行良好。

如果有什么不同的话,我会用Chome。

这是我的错吗?或者这只是教程中的一个错误?

Igor,我认为这是教程的错误,您需要在href属性中添加/。例如

<a href="/news/<? echo $news_item['slug']?>">View Article</a>

此外,您应该使用URL Helper-http://codeigniter.com/user_guide/helpers/url_helper.html

附言:你可能没有调整.htaccess文件。

为了避免这种错误,我在写链接时经常使用base_url()。像这样:

<?php echo anchor(base_url('news/'.$news_item['slug']),View article); ?>

注意,我使用anchor()&URL帮助程序的base_url()函数。更多信息,请访问:

http://codeigniter.com/user_guide/helpers/url_helper.html

这是CI教程中的一个错误。


首先,建议使用site_url()函数来帮助生成新闻片段URL。

您可以在controllers/News.php中将$this->load->helper('url');添加到新闻控制器的__construct()

然后将视图/news/index.php中的链接URL更改为<?php echo site_url('news/' . $news_item['slug']); ?>


最关键的错误是,在您当前的文件中,您正在填充$data['news'],而您的其他函数则在查看$data[‘news_item’]

您应该更改views/news/view.php中的这(两)个变量和controller/news.phpview()函数中的(三)个变量

重新加载页面后,应该可以了!有关CI论坛上的完整讨论,请查看以下链接:http://ellislab.com/forums/viewthread/209349/

对我来说,我更改了

   $data['news'] = $this->news_model->get_news($slug);

至:

   $data['news_item'] = $this->news_model->get_news($slug);

这很好,现在

BTW,我发现了这个git-reo github.com/Crias/tutorial-codeigniter-news,它包含默认代码点火器教程的源代码。

现在,您不需要再次键入(或复制粘贴)它即可使教程正常工作。