1

我的 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/news/news/firstnews

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

我试图从 href 值中删除“新闻”位,它工作正常。

如果这有什么不同,我正在使用 Chome。

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

4

5 回答 5

2

伊戈尔,我认为,这是一个教程的错误,你需要在 href 属性中添加 / 。例如

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

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

Ps 有可能你没有调整 .htaccess 文件。

于 2012-09-08T19:23:24.440 回答
2

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

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

请注意,我使用了URL 助手anchor()的&base_url()函数。更多信息在:

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

于 2012-09-10T05:35:30.360 回答
1

This is a mistake in the CI tutorial.


First of all it's recommended to use the site_url() function to help generate the news slug URL.

You do this by adding $this->load->helper('url'); to the __construct() of your News controller in controllers/news.php

Then change your link URL in your views/news/index.php to <?php echo site_url('news/' . $news_item['slug']); ?>


The most crucial mistake is that throughout your current files you're populating $data['news'] while the rest of your functions are looking at $data[‘news_item’]

You should change these (two) variables in views/news/view.php and the (three) variables in the view() function in controller/news.php

After reloading the page, that should do it! For the full discussion on the CI forums check the following link: http://ellislab.com/forums/viewthread/209349/

于 2013-09-25T10:31:15.443 回答
0

顺便说一句,我发现这个 git repo github.com/Crias/tutorial-codeigniter-news包含默认 codeigniter 教程的源代码。

现在,您无需再次键入(或复制粘贴)它即可使教程正常运行。

于 2014-07-16T07:38:22.637 回答
0

对我来说我改变了

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

至:

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

现在效果很好

于 2013-09-24T13:07:36.820 回答