2013-03-02 5 views
0

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

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

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

index.php/статьи/articlename

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

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(); 
    } 
} 

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

+0

Возможно, '$ data ['article_item']' пуст? 'var_dump' это. – Leri

+0

hmm Я пробовал, но как-то я не получаю ничего, кроме 404-страничного вывода. – Reshad

+0

Когда вы протестировали, вы прокомментировали свой вызов 'show_404()'? –

ответ

1

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

Ваш URL должен быть: index.php/статей/просмотр/articlename

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