我有一个控制器,我需要检查URL中的有效ID,show_404()如果ID不匹配.
我面临的问题是,当我调用show_404()它时只显示view/error/404.html而不是my404我配置的自定义控制器routes.php
差异是my404控制器添加页眉和页脚相同view/error/404.html
要在调用show_404()时拥有自定义404页面,您需要扩展核心.
当您只是将其添加到路线时,它不会影响show_404().
在application/core文件夹中:
class MY_Exceptions extends CI_Exceptions {
/**
* 404 Error Handler
*
* @uses CI_Exceptions::show_error()
*
* @param string $page Page URI
* @param bool $log_error Whether to log the error
* @return void
*/
public function show_404($page = '', $log_error = TRUE)
{
if (is_cli())
{
// For CLI
$heading = 'Not Found';
$message = 'The controller/method pair you requested was not found.';
echo $this->show_error($heading, $message, 'error_404', 404);
}
else
{
// For view
$CI = &get_instance();
$CI->layout->show('front/error/404', $CI->view_data); //Note I am using layout library. You'll probably use $CI->load->view()
echo $CI->output->get_output();
}
// By default we log this, but allow a dev to skip it
if ($log_error)
{
log_message('error', $heading.': '.$page);
}
exit(4); // EXIT_UNKNOWN_FILE
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |