2017-09-15 203 views
0

我在我的核心文件夹中,2个控制器:扩展CodeIgniter的核心类

  1. MY_Controller
  2. MY_AdminController

都扩展是CI_Controller。首先一个伟大的工程,但第二个没有,当我打电话是从MY_AdminController继承控制器我得到一个错误:

Fatal error: Class 'MY_AdminController' not found 

做一些研究,我发现后:

https://codeigniter.com/user_guide/general/core_classes.html 

在该文献说你使用“MY_”前缀(可以在配置中改变它)扩展核心类,我这样做。

我错过了什么?

UPDATE 我想知道如果这个问题是因为自从我创建一个文件中的“核心”文件夹中,CI检查,如果它确实存在原稿放在自己的核心名称相同但前缀CI?

+0

确保您的文件名级应用核心匹配/ MY_Admincontroller.php – user4419336

+0

@ wolfgang1983感谢您的回答。我编辑了我的问题,这是一个错字,在我的代码上,我有类名相同的文件名 – Eduardo

+0

没有CI_Admincontroller,所以你不能扩展那些不存在的东西。 –

回答

1

这里是a good explanation至于为什么你不能按照你所描述的方式去做。本质上CodeIgniter寻找['subclass_prefix'] . $Classname,例如'MY_' . 'Controller'。这里是CI2

解决同一个问题:
把这两样MY_ControllerMY_AdminControllerMY_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

我会尽力。不包括同一文件中的类,但在其中使用require,我喜欢保持控制器文件可见。 – Eduardo

+0

好主意,每个文件一个类是最好的 – Nick

+0

我发布了另一个问题,也许你可以帮助:https://stackoverflow.com/questions/46368601/loading-view-inside-a-library-issues-with-cached-vars – Eduardo