在另一个控制器中调用控制器

时间:2013-10-17 07:33:18

标签: codeigniter class controllers

我需要一个人在这里,我很困惑我将如何将我的文件放在我的代码中。我有两个名为

的控制器
ex: 
controller1.php
controller2.php

我希望在controller1.php中的所有函数都可以在controller2.php中访问,所以我写了

class Controller2 extends Controller1 { 

}

我在这里应用了我所理解的Calling a Controller function in another Controller in CodeIgniter

但我收到错误

Fatal error: Class 'Controller1' not found in C:\xampp\htdocs\bla\application\controllers\Controller2.php on line 3

然后我搜索了任何可能的解决方案,然后我发现我必须将Controller1.php放在核心文件夹中,但我收到同样的错误.. MY_Controller class not found

我正在使用最新版本的codeigniter框架。

我错过了什么?怎么样?

2 个答案:

答案 0 :(得分:0)

文件重命名为“MY_Controller”,如果将其放入“/ core”文件夹中。前缀很重要(顺便说一下,您可以在配置中设置)。另外,请确保在MY_Controller中扩展CI_Controller

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

然后,您可以使用其他控制器访问此核心控制器,如下所示:

class Controller1 extends MY_Controller
{
    public function __construct()
    {
        parent::_construct();
    }
}

答案 1 :(得分:0)

Controller1将自动加载,并且如果您将其放在application/core/MY_Controller.php内,则可以用于扩展。

否则,您必须使用require

require APPPATH . 'controllers/Controller1.php';
class Controller2 extends Controller1 { }