继承构造函数php 5.2.6

时间:2014-02-25 15:24:42

标签: php codeigniter

我有一个相对简单的问题。我试图从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

1 个答案:

答案 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了解详情。