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を調べると、リンクが次のように表示されることです。

記事を見る

私が思うに、これは正しいと思います。しかし、私がクリックすると、それは私を指し示します:

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

ご覧のとおり、「ニュース」はURIで2回繰り返されます。ブラウザは、index.phpにクリーンアップしてそこに追加するのではなく、開いているURIにhref値を追加しているようです。

href値から「news」ビットを削除しようとしましたが、正常に機能します。

それが何か違いを生むなら、私はChomeを使っています。

それは私の間違いですか?または、これはチュートリアルの単なるエラーですか?

4

5 に答える 5

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

これは CI チュートリアルの間違いです。


まず、このsite_url()関数を使用してニュース スラッグ URL を生成することをお勧めします。

これを行うには、 controllers/news.phpの News コントローラーに を追加$this->load->helper('url');します。__construct()

次に、 views/news/index.phpのリンク URL を次のように変更します。<?php echo site_url('news/' . $news_item['slug']); ?>


最も重大な間違いは、現在のファイル全体で$data['news']、残りの関数が見ている間にデータを入力しているということです$data[‘news_item’]

views/news/view.phpのこれらの (2 つの) 変数と、 controller/news.phpview()の関数の (3 つの) 変数を変更する必要があります。

ページをリロードすると、それで完了です。CI フォーラムでの完全な議論については、次のリンクを確認してください: http://ellislab.com/forums/viewthread/209349/

于 2013-09-25T10:31:15.443 に答える
0

私にとって私は変わった

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

に:

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

そして、それは今ではうまくいきます

于 2013-09-24T13:07:36.820 に答える
0

ところで、デフォルトのcodeigniterチュートリアルのソース コードを含むこの git リポジトリ github.com/Crias/tutorial-codeigniter-news を見つけました。

これで、チュートリアルを機能させるために再度入力 (またはコピー アンド ペースト) する必要がなくなりました。

于 2014-07-16T07:38:22.637 に答える