我有一个相对简单的问题。我试图从php超类继承构造函数以在此控制器上进行身份验证。
这是我的超级班:
class Auth_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
if(!session_id()){
session_start();
}
$this->load->view('login_v/logincheck');
}
}
这是我的子类:
class Event_Controller extends Auth_Controller {
function __construct()
{
parent::__construct();
}
public function get_events_by_owner() {
$this->load->model('Event_model');
$data['events'] = $this->Event_model->select_by_owner($_SESSION['SignedIn']);
$this->load->view('event_view', $data);
}
}
这不起作用。只呈现白页。我不确定为什么它不起作用。如果我将构造函数从Auth_Controller
移动到Event_Model
,则可行。
谢谢!
编辑:
Fatal error: Class 'Auth_Controller' not found in
../controllers/event_controller.php on line 12
答案 0 :(得分:0)
您的解决方案不起作用,您应该尝试:
移动此代码:
if(!session_id()){
session_start();
}
$this->load->view('login_v/logincheck');
到cutom库,而不是在控制器的构造函数中运行此库。有关详细信息,请阅读Creating Libraries。
或:
创建MY_Controller类并将auth代码(上面引用)放入其构造函数中。比你能扩展的那样:
class Event_Controller extends MY_Controller {
(...)
请阅读Creating Core System Classes了解详情。