codeigniter 3.0自定义404未找到错误页面

Ram*_*min 6 php codeigniter codeigniter-3

我的问题是升级到Codeigniter 3.0后的自定义错误页面.

我曾经有一个Errors控制器处理网站的404错误页面 - 在这个控制器上我已经定制了一些页面部分,比如如果用户登录,它在导航栏上显示用户名等等(是的,在404上)错误页面).

升级到CI 3.0后,我注意到错误页面在不同的文件夹中处理,我开始以这种方式迁移; 但问题是我无法将任何变量加载到此页面,例如会话变量或甚至无法在这些页面上使用任何CI的功能.

我认为这些页面应该只是HTML页面,但有没有办法将变量加载到这些错误页面?

Gop*_*lan 17

您需要设置application/config/routes.php以下路线

$route['404_override'] = 'my404';
Run Code Online (Sandbox Code Playgroud)

然后,您需要在controllers目录中创建一个新控制器 (application/controllers/)

<?php 
class My404 extends CI_Controller 
{
 public function __construct() 
 {
    parent::__construct(); 
 } 

 public function index() 
 { 
    $this->output->set_status_header('404'); 
    $this->load->view('err404');//loading in custom error view
 } 
} 
Run Code Online (Sandbox Code Playgroud)

并创建一个err404视图.就这样!

参考:预留路由

  • 如果使用`show_404()`函数,这不起作用. (7认同)