我通过更改config.php
中的行来创建自己的自定义错误页面$route['404_override'] = 'main/_404';
现在它通过在我的控制器中加载_404函数来加载正确的页面
问题是,我仍然希望能够抓住$ heading&默认页面中显示$ message错误变量,显示为:
<div id="container">
<h1><?php echo $heading; ?></h1>
<?php echo $message; ?>
</div>
这是我的_404功能,如果有人可以给我一些建议如何添加这些变量我会非常感激
public function _404() {
$data['query'] = array('title' => 'Page not found.', 'keywords' => '', 'description' => 'Page not found', 'page' => 'error');
$this->load->view('parts/head',$data);
$this->load->view('parts/_404');// <- would go here
$this->load->view('parts/footer');
}
答案 0 :(得分:3)
嗯,实际上,有两件事:
1)在您的重新路由的404页面中,您应该能够定期传递您想要的任何变量,这样您就可以$this->load->view('parts/_404',$data);
并让变量可用。
2)如果您正在谈论默认的404页面,请记住,在某些环境声明下,即在调用show_404()
核心函数时,它不能被覆盖:
它不会影响show_404()函数,它将继续 加载默认的error_404.php文件 应用/错误/ error_404.php。
此函数属于Exception处理程序类。事实上,在第90行,你有
function show_404($page = '', $log_error = TRUE)
{
$heading = "404 Page Not Found";
$message = "The page you requested was not found.";
// By default we log this, but allow a dev to skip it
if ($log_error)
{
log_message('error', '404 Page Not Found --> '.$page);
}
echo $this->show_error($heading, $message, 'error_404', 404);
exit;
}
反过来调用show_error()
方法设置标题错误代码(第4个参数),添加指定的视图 (第三个参数)到视图缓冲区。
正如您所看到的,消息在此处硬编码。如果你想要一个完全自定义,你可以覆盖这个方法(例如,调用它,在同一个类中调用另一个函数)或者只是硬编码其他消息。