我的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时,我将链接视为:
查看文章
我认为这是正确的。 但是当我点击它时,它指向我:
本地主机/ CI / index.php的/新闻/新闻/ firstnews
正如您所看到的,“新闻”在URI中重复了两次。 看起来浏览器只是将href值附加到打开的URI, 而不是将其清理为index.php并将其添加到那里。
我试图从href值中删除“news”位,但它运行正常。
如果这有任何不同,我正在使用Chome。
这是我的错吗?或者这只是教程中的一个错误?
答案 0 :(得分:2)
<a href="/news/<? echo $news_item['slug']?>">View Article</a>
此外,您应该使用URL Helper - http://codeigniter.com/user_guide/helpers/url_helper.html
P.S。你有可能不调整.htaccess文件。
答案 1 :(得分:2)
为了避免这种错误,我在写下链接时经常使用base_url()
。像这样:
<?php echo anchor(base_url('news/'.$news_item['slug']),View article); ?>
请注意,我使用的是anchor()
&amp; URL helper的base_url()
个函数。更多信息:
答案 2 :(得分:1)
这是CI教程中的一个错误。
首先,建议使用site_url()
函数来帮助生成新闻slug URL。
您可以在 controllers / news.php
中将$this->load->helper('url');
添加到新闻控制器的__construct()
来执行此操作
然后将 views / news / index.php 中的链接网址更改为<?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/
答案 3 :(得分:0)
对我来说,我改变了
$data['news'] = $this->news_model->get_news($slug);
为:
$data['news_item'] = $this->news_model->get_news($slug);
并且工作正常,现在
答案 4 :(得分:0)
BTW,我发现这个git repo github.com/Crias/tutorial-codeigniter-news包含默认codeigniter教程的源代码。
现在您不需要再次键入(或复制粘贴)它以使教程有效。