我想创建两个父控制器:一个用于管理员,一个用于用户站点。他们必须扩展一个常规的Controller类,但每个都必须做不同的事情。
答案 0 :(得分:4)
我写了一篇文章,展示你是如何做到这一点的。
http://philsturgeon.co.uk/news/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY
您需要在config.php中创建一个__autoload()函数,或者直接在类定义上面包含基本控制器。
答案 1 :(得分:0)
这很简单。执行以下操作:
your_ci_app/application/core/
并创建一个名为MY_Controller.php
的php文件(此文件将位于您的顶级父类所在的位置)打开MY_Controller.php
并添加多个类,如下所示:
class Admin_Parent extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function test() {
var_dump("from Admin_Parent");
}
}
class User_Parent extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function test(){
var_dump("from User_Parent");
}
}
在此目录your_ci_app/application/controllers/
下创建子控制器。我会称之为adminchild.php
打开adminchild.php
并创建控制器代码,确保扩展父类的名称,如下所示:
class Adminchild extends Admin_Parent {
function __construct() {
parent::__construct();
}
function test() {
parent::test();
}
}