我正在尝试使用我自己的类扩展控制器,该类扩展了默认的CI_Controller类。除非它不起作用。
它说它无法找到我的子类。我的子类位于application / core中,名为My_Control_Panel。
我的课程扩展到我的子课程:
if (!defined('BASEPATH')) exit('No direct script access allowed');
class Developers extends My_Control_Panel
{
public function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->helper('url');
$this->load->database();
$this->checkIfLoggedIn();
$this->checkIfAllowedToViewPage();
}
我的子课程:
if (!defined('BASEPATH')) exit('No direct script access allowed');
class My_Control_Panel extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
}
它一直说它找不到我的子类,虽然它应该有用。
答案 0 :(得分:3)
如果您希望CI选择扩展课程,则必须将其命名为MY_Controller
。 MY_
部分是可配置的,但其他部分不是。
MY_
部分来自config/config.php:
$config['subclass_prefix'] = 'MY_';
答案 1 :(得分:3)
您应该在My_Controller.php
文件夹中将此文件命名为core
然后键入代码
if (!defined('BASEPATH')) exit('No direct script access allowed');
class My_Control_Panel extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
}
这是在CodeIgniter中执行此操作的正确方法,而不是在包含一个的第一个答案中提到的。
答案 2 :(得分:2)
您需要在子类(My_Control_Panel
)中包含父类(Developers
),如下所示:
if (!defined('BASEPATH')) exit('No direct script access allowed');
include_once '../path/to/mycontrolpanel.php';
class Developers extends My_Control_Panel
{
// whatever
}