一尘不染

在CodeIgniter中扩展Controller类

php

我对class MY_Controller extends CI_Controller大概class Profile extends MY_Controller要文件节具有通用逻辑,因此我尝试使用对概要文件节的通用逻辑进行创建,并且与该节相关的所有类都应按照我的理解正确扩展此Profile类,但是当我尝试创建时class Index extends Profile会收到错误消息:

Fatal error: Class 'Profile' not found

CodeIgniter尝试找到index.php我正在其中运行的此类。

我的错误在哪里?或者,也许还有另一种更好的方法来标记出通用逻辑?


阅读 227

收藏
2020-05-29

共1个答案

一尘不染

我认为您已经将MY_Controller放在/ application /
core中,并在配置中设置了前缀。我会谨慎使用index作为类名。作为Codeigniter中的功能/方法,它具有专用的行为。

如果然后要扩展该控制器,则需要将这些类放在同一文件中。

例如,在/ application核心

/* start of php file */
class MY_Controller extends CI_Controller {
    public function __construct() {
       parent::__construct();
    }
...
}

class another_controller extends MY_Controller {
    public function __construct() {
       parent::__construct();
    }
...
}
/* end of php file */

在/ application / controllers中

class foo extends MY_Controller {
    public function __construct() {
       parent::__construct();
    }
...
}

要么

class bar extends another_controller {
    public function __construct() {
       parent::__construct();
    }
...
}
2020-05-29