【发布时间】:2012-11-09 03:19:21
【问题描述】:
我正在为网站使用 Codeigniter.2.1.3,所以我需要扩展 CI_Controller,这样我就可以添加一个与所有控制器一起执行的方法,所以我做了 user_guide 中的操作:
在 application/core 文件夹中创建一个名为 MY_Controller.php 的文件,在其中创建扩展 CI_Controller 的 MY_Controller 类,将我的常规控制器更改为扩展 MY_controller,如下所示: MY_controller.php:
class MY_Controller extends CI_Controller{
protected $page;
# Constructor
function __construct (){
parent::__construct();
#code shared with all controllers
}
public function get_page(){
#code to get_the right page here
}
}
名为Regular.php的常规控制器:
class Regular extends MY_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$this->get_page();
}
}
但不断出现以下错误:
致命错误:在第 2 行的 /var/www/immo/CodeIgniter_2.1.3/application/controllers/regular.php 中找不到类“MY_Controller”
【问题讨论】:
-
在你的应用程序/config/config.php 中你有什么
$config['subclass_prefix'] -
您确定 MY_Controller.php 在 application/core 文件夹中吗?此外,如果您在 linux 上,则可能区分大小写 :) 确保文件名与控制器名称相同。
MY_Controller.php,不是MY_controller.php。 -
在MY_Controller后面加一个空格
-
@Esailija $config['subclass_prefix'] = "MY_"
-
@Jeemusu:是的,它在应用程序/核心文件夹中
标签: php codeigniter controllers extending-classes