0

じぶんの

アプリケーション/.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

アプリケーション/config/routes.php

$route['default_controller'] = "news";
$route['404_override'] = '';

アプリケーション/モデル/news_model.php

<?php
class News_model extends CI_Model {

    public function __construct()
    {
        $this->load->database();
    }

    public function get_news($slug = FALSE)
    {
        if ($slug === FALSE)
        {
            $query = $this->db->get('news');
            return $query->result_array();
        }

        $query = $this->db->get_where('news', array('slug' => $slug));
        return $query->row_array();
    }
}
?>

アプリケーション/コントローラー/news.php

<?php
class News extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('news_model');
    }

    public function index()
    {
        $data['news'] = $this->news_model->get_news();
        $data['title'] = 'News archive';

        $this->load->view('templates/header', $data);
        $this->load->view('news/index', $data);
        $this->load->view('templates/footer');
    }


    public function view($slug)
    {
        echo $slug;
        $data['news_item'] = $this->news_model->get_news($slug);
        var_dump($data);
        if (empty($data['news_item']))
        {
            show_404();
        }

        $data['title'] = $data['news_item']['title'];

        $this->load->view('templates/header', $data);
        $this->load->view('news/view', $data);
        $this->load->view('templates/footer');
    }
}
?>

アプリケーション/ビュー/index.php:

<?php foreach ($news as $news_item): ?>
    <?php var_dump($news_item); ?>
    <h2><?php echo "<pre>"; echo $news_item['title'] ?></h2>
    <div id="main">
        <?php echo $news_item['text'] ?>
    </div>
    <p><a href="news/<?php echo $news_item['slug'] ?>">View article</a></p>

<?php endforeach ?>

および Applications/views/view.php

<?php
echo '<h2>'.$news_item['title'].'</h2>';
echo $news_item['text'];

問題は、インデックス (ニュースを一覧表示) を表示できることですが、スラッグ リンクをクリックすると、次の場所に移動しようとします。

/news/slug1

そして、見つからないエラーが発生します..

ここで何が欠けていますか?

4

3 に答える 3

3

リンクは次のとおりです。

 <p><a href="/news/view/<?php echo $news_item['slug'] ?>">View article</a></p>
于 2013-05-07T14:09:49.717 に答える
0

コントローラのインデックス メソッドは次のようになります。

public function index()
{
    $data['news'] = $this->news_model->get_news();
    $data['title'] = 'News archive';

    $this->load->view('templates/header', $data);
    $this->load->view('view', $data);
    $this->load->view('templates/footer');
}

記事のリンクは次のようにする必要があります。

<p><a href="news/index/<?php echo $news_item['slug'] ?>">View article</a></p>
于 2013-05-07T14:15:00.600 に答える