我创建了一个名为Role_Admin
的核心控制器并设置了配置前缀
$config['subclass_prefix'] = 'Role_';
以下是Role_Admin.php
文件夹
core
的代码
class Role_Admin extends CI_Controller {
function __construct() {
}
}
我写的时候在控制器文件夹中
class admin extends Role_Admin { ... }
我得到了
致命错误:找不到“Role_Admin”类
我正在做的事情有问题。
编辑:(我创建了一个更好的快速修复,你创建的任何新核心文件只是扩展了MY_Controller。然后在你的控制器目录中你可以扩展你创建的任何核心控制器
class MY_Controller extends CI_Controller {
function __construct() {
parent::__construct();
//include custom core classes
$core_path = DOCUMENT_ROOT . '/application/core';
$this->load->helper('file');
foreach(get_filenames($core_path) as $file) {
if ($file != 'MY_Controller.php') {
if(file_exists($file)) {
include_once($file);
}
}
}
}
}
答案 0 :(得分:1)
您对$config['subclass_prefix']
的设置很好,但您的文件名不正确。 CI正在查找文件Role_Controller.php
,而不是Role_Admin.php
。
有一种更简单的方法可以做到这一点,虽然它看起来像是一个黑客,但它是完全合法的。返回MY_
前缀,创建MY_Controller.php
,然后在该文件中,只需定义要使用的控制器类。你实际上甚至不需要MY_Controller
课程。例如:
// application/core/MY_Controller.php
class Role_Admin extends CI_Controller {}
class AnotherClass extends Role_Admin {}
class SomeOtherClass extends AnotherClass {}
所有这些类都可供控制器使用。