在我的application/core
目录中,我有了课程MY_Controller
。
现在,我想在两个路径application/core/Frontent/Frontend_Controller.php
和application/core/Backend/Backend_Controller.php
中创建两个类。然后我的模块控制器从Frontend_Controller和Backend_Controller类扩展。
但是,CI总是会引发类错误。
<小时/> 编辑2014年3月20日:
我使用了@manix的建议:
1.在/application/config/config.php
function __autoload($class)
{
if (strpos($class, 'CI_') !== 0)
{
if (file_exists($file = APPPATH . 'core/Frontend/' . $class . EXT))
{
include $file;
}
if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT))
{
include $file;
}
}
}
/application/core/Backend/Backend_Controller.php
:
(defined('BASEPATH')) OR exit('No direct script access allowed');
class Backend_Controller extends CORE_Controller {
}
Fatal error: Class 'Backend_Controller' not found in codeigniter\application\widgets\menu\Controllers\menu.php on line 6
。如果我将Backend_Controller.php放在/application/core/Backend_Controller.php
,那就没问题。但我想将其放入子文件夹中。解决方案(2014年3月24日更新) 感谢manix。我从他的代码编辑加载类。这是适用于我的代码。
function __autoload($class) {
if (strpos($class, 'CI_') !== 0) {
if (file_exists($file = APPPATH . 'core/Frontent/' . $class . EXT)) {
include $file;
}
if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT)) {
include $file;
}
if (file_exists($file = APPPATH . 'core/' . $class . EXT)) {
include $file;
}
}
}
答案 0 :(得分:1)
尝试在__autoload
文件夹中引发的config.php文件末尾显式调用application/config/
函数。看看上面的例子:
function __autoload($class)
{
if (strpos($class, 'CI_') !== 0)
{
if (file_exists($file = APPPATH . 'core/Frontent/' . $class . EXT))
{
include $file;
}
if (file_exists($file = APPPATH . 'core/Backend/' . $class . EXT))
{
include $file;
}
}
}