CodeIgniter: класс 'CI Controller' не найден [закрыт]
я расширил контроллер CodeIgniter, добавив MY_Controller.php в папке Application/Core. Он отлично работает, но теперь, когда я добавляю следующий код на error_404.php
страницы Application/errors
, Я получаю сообщение об ошибке.
код проблемы:
<?php $ci =& get_instance();?>
<?php $this->ci->load->view('header')?>
ошибка:
Fatal error: Class 'CI_Controller' not found in pathtosystemcoreCodeIgniter.php on line 231
в строке 231 в systemcoreCodeIgniter.php
- это:
function &get_instance()
{
return CI_Controller::get_instance();
}
как я могу это исправить, чтобы я мог загрузить представление в error_404.в PHP ничего не меняя в системе файлы.
PS. Я использую последнюю версию.
спасибо.
4 ответов
Я не думаю, что CI_Controller еще загружается. Класс исключения обрабатывает вывод страницы 404 с помощью include
.
в старые времена я использовал straight include
s, чтобы собрать шаблон или сделать file_get_contents()
или запрос cURL на мой URL страницы 404, но они, наконец, что-то сделали с этим. В 2.0 вы можете определить пользовательскую страницу 404 в routes.php
:
$route['404_override'] = 'controller/method/parameter';
все равно не идеальное решение, но самый простой способ сейчас-это просто использовать маршрут.
отметим, что base_url()."controller/method/parameter"
должен быть допустимым url-адресом, и вы должны обязательно установить заголовок 404 в контроллере, который также выводит страницу (по какой-то причине это не делается автоматически).
У меня была эта проблема, когда я следовал учебнику CodeIgniter здесь:http://codeigniter.com/user_guide/tutorial/static_pages.html
проблема заключалась в том, что я пытался получить доступ к url:
localhost / CodeIgniter_2.1.1 / приложения / контроллеры / страницы.в PHP
вместо адресации url:
localhost / CodeIgniter_2.1.1 / индекс.php/pages / просмотр
Я знаю, что прошло около 18 месяцев с тех пор, как вы задали этот вопрос, но может быть, это может помочь кому-то еще :)
или вы можете попробовать это, возможно, немного грязно, но я думаю, что это сработает для меня
обновить исключение
function show_404($page = '', $log_error = TRUE) {
if ($log_error) {
log_message('error', '404 Page Not Found --> '.$page);
}
header('Location: http://www.########.###/error/error_404');
die();
}
затем просто создайте контроллер для обработки перенаправления, возможно, с разными ошибками вы можете использовать один и тот же контроллер
таким образом, вы получите динамический верхний и Нижний колонтитулы
попробуй:
<?php $ci =& get_instance();?>
<?php $ci->load->view('header')?>
Как только вы назначили экземпляр CI $ci, вы можете просто использовать $ci - >load - >view('header) во всем файле.