Я строй своего первого сайт 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();
}
}
Я надеюсь, что кто-то может сказать мне, что я делать неправильно здесь.
Возможно, '$ data ['article_item']' пуст? 'var_dump' это. – Leri
hmm Я пробовал, но как-то я не получаю ничего, кроме 404-страничного вывода. – Reshad
Когда вы протестировали, вы прокомментировали свой вызов 'show_404()'? –