我的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.php中view()
函数中的(三)个变量
重新加载页面后,应该可以了!有关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,它包含默认代码点火器教程的源代码。
现在,您不需要再次键入(或复制粘贴)它即可使教程正常工作。