CodeIgniter имеет очень простое сообщение об ошибке 404 по умолчанию:
404 Page Not Found The page you requested was not found.
Вместо того, чтобы использовать это сообщение об ошибке на абсолютно пустой странице, я хочу обернуть это сообщение между моим представлением заголовка и нижнего колонтитула, чтобы сообщение об ошибке выглядело аналогично другим страницам.
С этой целью я создал представление об ошибке? Например:
my404_view.php
<? $this->load->view('header'); ?> 404 Page Not Found The page you requested was not found. <? $this->load->view('footer'); ?>
Теперь, как я могу использовать этот my404_view.php
в качестве представления по умолчанию для отображения 404 сообщений вместо использования сообщения об ошибке по умолчанию CodeIgniter.
Вы должны изменить свои маршруты.php. Например:
в приложении / config / routes.php
$route['404_override'] = 'welcome/_404';
в приложении / контроллеры / welcome.php
function _404(){ $this->load->view("my404_view"); }
И этого должно быть достаточно в текущей версии CI.
Включение заголовков и нижних колонтитулов на странице 404 с ошибкой по умолчанию, похоже, является общей проблемой для пользователей CodeIgniter. Я хотел бы добавить эту ссылку: комментарии Саймона Эмса на http://www.simonemms.com/2011/05/06/codeigniters-404-override-problem/, потому что он так четко описывает проблему. Я пробовал предложения на http://maestric.com/doc/php/codeigniter_404 и играл с идеями Саймона Эммса и другими, но просто не могу их реализовать. Я немного новичок в PHP и CodeIgniter, так что это может быть из-за невежества. Тем не менее, трудно обеспечить, чтобы вы поместили предлагаемые подклассы в нужные места и правильно настроили, например, route.php. По прошествии 3 дней с точки зрения различных довольно сложных идей мне пришло в голову, что я могу просто использовать оператор include на странице ошибки 404 по умолчанию. Единственная трудность заключалась в выяснении пути перехода к заявлению include. В строке /system/core/Exceptions.php 146 я обнаружил, что разработчики CodeIgniter используют APPPATH. Затем вам нужно добавить путь к страницам заголовка и нижнего колонтитула, которые вы хотите включить. Теперь моя новая ошибка 404 выглядит так:
<?php include APPPATH.'/views/templates/header.php'; ?> <div id="container"> <h1><?php echo $heading; ?></h1> <?php echo $message; ?> </div> <?php include APPPATH.'/views/templates/footer.php'; ?>
Мне кажется, это намного проще, чем пытаться изменить основные классы в CodeIgniter.