Файл не найден. Сообщение об ошибке не отображается в Code Igniter. - PullRequest
0 голосов
/ 14 октября 2018

Я изучаю Code Igniter.По сути, я хочу показать сообщение об ошибке 404 , когда пользователи переходят по URL-адресу, который не существует в каталоге views.

Итак, я создал новый файл на application/controllers/ с именем Pages.php, который выглядит следующим образом:

<?php
class Pages extends CI_Controller
{
    public function view($page = 'home')
    {
        if(!file_exists(APPPATH.'views/pages/'.$page.'.php'))
        {
            show_404();
        }

        $data['title'] = ucfirst($page);

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

Затем я создал папку с именем templates в просмотров каталог, который содержит файл header.php и файл footer.php.И я также создал папку pages в том же каталоге.

Итак, я должен получить сообщение 404 Страница не найдена , когда я перехожу к пользовательскому URL, например http://localhost/codeigniter/pages/about, который еще не существует.

Но проблема в том, что браузер показывает мне Объект не найден! , а не это.

Так что же с этим не так, как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Ваш URL

http://localhost/codeigniter/pages/about

указанный выше URL неверен, используйте его вместо указанного выше

http://localhost/codeigniter/pages/view/about

Формат URL

protocol://domain/class/method/var1/var2/...

Protocol = http://

Domain = localhost/codeigniter (In localhost)

Class = pages

Method = view

Var1 = about

var2 = '' (if any)

0 голосов
/ 14 октября 2018

Это не так, как работает CI.Для начала pages/about не существует.Обычная схема URI - Controller / method, поэтому вам нужно указать на pages/view

Если немного углубиться, CI уже имеет обработчик ошибок (готовые шаблоны, которые вы можетеизменения находятся в /views/error, и вы можете создавать разные страницы ошибок в зависимости от типа ошибки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...