I have successfully extended the CI_Controller class by creating a MY_Controller.php which I have placed in the application/core directory.
core/My_Controller.php looks something like this:
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
}
}
Then when I create normal controllers they look something like this:
class Home extends MY_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('home');
}
}
I'm creating a admin back end and I want to have a different base class for controllers to extend instead of My_Controller. This is so I can have common methods for the admin controllers (i.e. authentication_check etc.)
What I can't work out is how I create another controller that extends CI_Controller.
The goal is for admin controllers to extend a different base class than the front-end controllers.
The admin base controller would look like this:
class MY_Admin_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
}
}
An normal controller for admin pages:
class Admin_home extends MY_Admin_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('admin_home');
}
}
The problem is that to extend the CI_Controller class you must name your controller file PREFIX_Controller.php and place it in the core/ directory. But I want two controller classes and they can't have the same filename.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…