我的核心文件夹中有2个控制器:
两者都扩展了CI_Controller。第一个很好,但第二个没有,当我调用继承自MY_AdminController的控制器时,我得到一个错误:
Fatal error: Class 'MY_AdminController' not found
经过一些研究后我发现:
https://codeigniter.com/user_guide/general/core_classes.html
在本文档中,它说你使用" MY _"前缀(可以在配置中更改它)来扩展核心类,我这样做。
我错过了什么?
更新 我想知道问题是否是因为我在内部创建了一个文件&#34; core&#34;文件夹,CI检查它的核心是否存在同名但前缀为CI的原始核心<?p>
答案 0 :(得分:1)
以下是a good explanation,为什么你不能按照你所描述的方式去做。基本上CodeIgniter会查找['subclass_prefix'] . $Classname
,例如'MY_' . 'Controller'
。以下是CI2
<强>解决方案:强>
将MY_Controller
和MY_AdminController
放在MY_Controller.php
MY_Controller.php
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
}
...
}
class MY_AdminController extends CI_Controller {
public function __construct() {
parent::__construct();
}
...
}
答案 1 :(得分:1)
允许任何新课程。表示哪个类别在系统/核心中定义了注释 解决方法如下。
尝试将以下功能放在配置文件的底部
/application/config/config.php
function __autoload($class) {
if(strpos($class, 'CI_') !== 0)
{
@include_once( APPPATH . 'core/'. $class . '.php' );
} }