Как получить show_error () в CodeIgniter для загрузки представления?

Мне нужно загрузить представление головы и вид стопы на всех моих страницах. Но show_error использует свой собственный полный шаблон. И он прекращает выполнение после загрузки этого шаблона, поэтому нижний колонтитул даже не загружается, если я захочу.

Должен ли я переопределить этот метод или есть другой способ?

Вы можете создать собственный макет для сообщений об ошибках в каталоге application/errors .

РЕДАКТИРОВАТЬ:

Если вы хотите использовать существующие файлы, вы можете выполнить одно из следующих действий:

  1. Если вам нужна только страница ошибки 404, вы можете установить собственный маршрут в config/route.php в $route['404_override'] .
  2. Если вам нужно обрабатывать все сообщения об ошибках, CI_Exceptions класс CI_Exceptions с помощью MY_Exceptions и используя простой PHP, перенаправьте пользователя на соответствующую страницу. Класс исключений загружается перед контроллером, поэтому вы не можете использовать get_instance() .

Итак, так я это сделал, и он отлично работал. Я расширил возможности CI_Exceptions предложенные Яном Берком, но я смог использовать get_instance AND load my view.

 class MY_Exceptions extends CI_Exceptions { private $CI; private $dist; public function __construct() { parent::__construct(); $this->CI =& get_instance(); $this->dist = $this->CI->config->item('dist'); } function show_error($heading, $message, $template = 'error_general', $status_code = 500) { $head_data = array("title"=>$this->dist['site_title'].": Error"); $head = $this->CI->load->view('head', $head_data, TRUE); $body = $this->CI->load->view('error_body', $message, TRUE); echo $head; echo $body; } }