2

我在 routes.php 文件中设置了 404_override。文件很简单:

public function missing_page()
{
    $this->output->set_status_header('404');
    $this->load->view('header');
    $this->load->view('404');
    $this->load->view('footer');
}

如果我导航到不存在的控制器(即 /missing-page),自定义 404 方法会正确加载。如果我导航到现有控制器但不存在方法(即 /not-missing/missing),我会收到错误消息:

Codeigniter 错误日志:Severity: Notice --> Undefined property: CI_Loader::$user_model /application/views/header.php 30

PHP错误日志: PHP Fatal error: Call to a member function active() on a non-object in /views/header.php on line 30

为什么这适用于一个但不能适用于另一个?

4

1 回答 1

0

查看http://ellislab.com/codeigniter/user-guide/general/errors.html

那里说,当找不到控制器时,将触发 404。

这就是为什么您的第一个场景可以正常工作的原因。

但是在您的第二种情况下,codeigniter 找到了您的控制器,但没有找到您的方法。

问候。

于 2013-10-03T09:41:21.877 回答