【问题标题】:Unable to use controller "Error" for 404_override routing无法为 404_override 路由使用控制器“错误”
【发布时间】:2017-09-22 05:03:24
【问题描述】:

我在 codeigniter “application/controllers/Error.php”中有一个名为“Error”的控制器。

我使用这个控制器通过路由覆盖默认的 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

但是当我将错误控制器重命名为另一个时,它可以工作。

请帮忙。

【问题讨论】:

  • 将此$route['404_override'] = 'myerror'; 更改为$route['404_override'] = 'error'; 确保类名相同
  • 是的,试试@wolfgang1983 解决方案。

标签: php codeigniter routing codeigniter-3


【解决方案1】:

你需要把你的控制器和文件名改成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
    } 
} 

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2017-12-16
  • 2016-07-23
相关资源
最近更新 更多