#php #codeigniter
#php #codeigniter
Вопрос:
В моей папке CodeIgniter у меня есть пользовательские страницы ошибок для каждого типа ошибок в application/views/errors/html
виде error_404.php и т.д. Итак, когда я попытался обновить макет и добавил <?php $this->load->view('header'); ?>
сверху, он начал показывать мне ошибки типа:
A PHP Error was encountered
Severity: Notice
Message: Undefined property: CI_Exceptions::$load
Filename: html/error_404.php
Итак, я хочу знать, как я могу заставить это работать? Я также пытался расширить класс исключений из CI_Controller, но по-прежнему безуспешно. Пожалуйста, помогите мне добавить мой пользовательский заголовок на мою пользовательскую страницу ошибок. Спасибо.
PS: Я хочу прояснить, что даже если я использую некоторую функцию include () в PHP, но я также хочу использовать функцию base_url, например
<script src="<?php echo base_url('assets/js/iconmenu.js'); ?>" type="text/javascript"></script> <br>
Еще одна вещь, которую я хочу прояснить, это то, что я использую Codeigniter 3.0, который предоставляет все шаблоны ошибок, но не позволяет использовать функцию $this-> load.
Комментарии:
1. Если люди не знают ответа, они не голосуют за него. Если вы этого не понимаете, вы можете попросить очистить, но голосование «Вниз» неверно.
Ответ №1:
Я не знаю причину вышеупомянутой ошибки. Возможно, это из-за того, что библиотеки ядра не загружаются в случае возникновения ошибки 404
.
Вы можете попробовать другой способ. Смотрите application/route.php
, и есть возможность переопределить URL 404, $route['404_override'] = '';
Пример: Создайте метод error_404
в Welcome
контроллере и обновите переменную маршрута как $route['404_override'] = 'welcome/error_404';
, теперь вы можете использовать весь helpers
/ libraries
и т.д.
Смотрите маршруты
Надеюсь, это поможет!
Комментарии:
1. Спасибо, я знал об этом, но меня беспокоит ошибка 500 / database, и я хочу создать шаблон специально для этого, и, к сожалению, для этого не зарезервирована переменная route.
2. Я думаю, мне нужно использовать либо .htaccess для этого, либо создать полностью отдельный шаблон с абсолютными URL-адресами, как в core php. CI не предоставляет никаких функциональных возможностей для этого
3. Да, я считаю, что это нужно обработать в .htaccess