Codeigniter“新闻栏目”教程问题

时间:2012-09-08 19:07:02

标签: php codeigniter

我的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。

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

5 个答案:

答案 0 :(得分:2)

Igor,我认为,这是教程的错误,你需要在href属性中添加/。 E.g。

<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 helperbase_url()个函数。更多信息:

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

答案 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教程的源代码。

现在您不需要再次键入(或复制粘贴)它以使教程有效。