получаю ошибку 404 при нажатии на статью

Я создаю свой первый веб-сайт CodeIgniter и решаю проблему, которую, кажется, трудно решить.

Когда я нажимаю на статью, чтобы прочитать ее, я продолжаю получать страницу 404. ( не найден )

ссылка, которую я получаю, выглядит следующим образом

index.php/статьи/название статьи

В моем контроллере у меня есть следующее для части просмотра

    public function view($slug) {
    $data['article_item'] = $this->articles_model->get_article($slug);

    if (empty($data['article_item']))
    {
        show_404();
    }

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

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

Как вы видите, он должен включать view.php в каталог статей.

В моем маршрутизаторе у меня есть следующее

    $route['articles/(:any)'] = 'articles/view/$1';
$route['articles/create'] = 'articles/create';
$route['(:any)'] = 'pages/view/$1';
$route['gallery'] = 'gallery';
$route['articles'] = 'articles';
$route['default_controller'] = 'home';
$route['404_override'] = '';

Просто чтобы убедиться, что я разместил все соответствующие материалы, вот ссылка, которую я создаю

<a href="articles/<?php echo $article_item['slug'] ?>" class="button">Read more</a>

и модель

    <?php
class Articles_model extends CI_Model {

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

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

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

Я надеюсь, что кто-то может сказать мне, что я делаю неправильно здесь ..


person Reshad    schedule 02.03.2013    source источник
comment
Может $data['article_item'] пусто? var_dump это.   -  person Leri    schedule 03.03.2013
comment
хм, я пытался, но почему-то я не получаю ничего, кроме страницы 404 на выходе.   -  person Reshad    schedule 03.03.2013
comment
Когда вы тестировали, вы закомментировали свой show_404() вызов?   -  person Maxime Morin    schedule 03.03.2013
comment
Да, я сделал. Проблема заключалась в том, что моя страница для статей находилась в каталоге общих страниц, поэтому маршрутизатор взял неправильный файл. Я решил это сейчас, и это работает   -  person Reshad    schedule 03.03.2013
comment
просто для записи это неэффективный способ создания шаблонов. Создайте новое представление с именем template.php, загрузите туда остальные 4 представления, а затем просто передайте то, что вы хотите сделать основным представлением, в качестве параметра в $data.   -  person Rick Calder    schedule 03.03.2013


Ответы (1)


В вашей ссылке отсутствует имя функции.

Ваш URL должен быть следующим: index.php/articles/view/articlename.

Первая часть вашего URL-адреса после index.php — это имя вашего класса, а вторая часть — это имя вашей функции, а затем ваши входные значения.

person Reza Ghorbani    schedule 30.07.2013