【发布时间】:2016-08-08 15:41:31
【问题描述】:
我正在尝试从 CI_Exceptions 覆盖 show_404 方法,但从未加载过 MY_Exceptions。
MY_Exceptions 位于 application/core/
代码
<?php
class MY_Exceptions extends CI_Exceptions {
function show_404(){
header("HTTP/1.1 404 Not Found");
$CI =& get_instance();
$CI->load->view('header.php');
$CI->load->view('err/custom404.php');
$CI->load->view('footer.php');
}
}
当我打电话给show_404() 时,我收到两个致命错误
致命错误:在第 196 行的 C:\workspace\ictp-tv-main\system\core\Common.php 中找不到类“MY_Exceptions”
致命错误:在第 196 行的 C:\workspace\ictp-tv-main\system\core\Common.php 中找不到类“MY_Exceptions”
我还有其他运行良好的扩展类,前缀相同MY_
编辑 在@Tpojka 建议后,我的代码是
class MY_Exceptions extends CI_Exceptions {
public function __construct()
{
parent::__construct();
$this->CI =& get_instance();
}
public function show_404($page = '', $log_error = TRUE){
header("HTTP/1.1 404 Not Found");
$this->CI->load->view('header.php');
$this->CI->load->view('err/custom404.php');
$this->CI->load->view('footer.php');
}
}
现在 404 页面是空白的。
编辑
解决方案
我们需要 ECHO 错误,而不是简单的加载视图。
public function show_404($page = '', $log_error = TRUE){
header("HTTP/1.1 404 Not Found");
echo $this->CI->load->view('header.php',array('PAGE_TITLE'=>'Page not found'),true);
echo $this->CI->load->view('err/custom404.php',null,true);
echo $this->CI->load->view('footer.php',null,true);
exit(4);
}
感谢@Tpojka 打开我的思路。
【问题讨论】:
标签: php windows codeigniter