2017-04-25 67 views
2

我有codeigniter「application/controllers/Error.php」中名爲「Error」的控制器。404_override路由無法使用控制器「錯誤」

我用這個控制器通過路由覆蓋默認的404錯誤頁面。

$route['404_override'] = 'myerror';

但在404錯誤發生我收到以下錯誤。

A PHP Error was encountered 

Severity: Warning 

Message: call_user_func_array() expects parameter 1 to be a valid callback, class 'Error' does not have a method 'index' 

Filename: core/CodeIgniter.php 

Line Number: 514 

Backtrace: 

File: C:\xampp\htdocs\ci-app\index.php 
Line: 292 
Function: require_once 

但是,當我將錯誤控制器重命名爲另一個,它的工作原理。

請幫忙。

+0

更改這個'$路線[ '404_override'] = 'myerror';'到'$路線[ '404_override'] ='錯誤';'確保類名相同 – user4419336

+0

是的,嘗試@ wolfgang1983解決方案。 –

回答

2

您需要將控制器和文件名更改爲myerror一樣,

<?php 
//application/controllers/Myerror.php 
class Myerror extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 
     $this->output->set_status_header('404'); 
     $data['content'] = 'error_404'; // Let View name 
     $this->load->view('index',$data);// loading view 
    } 
} 
+0

只是關閉標記的信息https://www.codeigniter.com/user_guide/general/styleguide.html#php-closing-tag – user4419336