繁体   English   中英

继承构造函数php 5.2.6

[英]Inheriting constructors php 5.2.6

我有一个相对简单的问题。 我正在尝试从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_ModelAuth_Controller可以Event_Model工作。

谢谢!

编辑:

Fatal error: Class 'Auth_Controller' not found in 
../controllers/event_controller.php on line 12

您的解决方案将无法正常工作,您应该尝试以下任一方法:

移动此代码:

if(!session_id()){
  session_start();
}

$this->load->view('login_v/logincheck');

到一个cutom库,而不是在控制器的构造函数中运行该库。 有关详细信息,请阅读创建库

要么:

创建MY_Controller类,并将身份验证代码(上面引用)放入其构造函数中。 比您将能够扩展如下:

class Event_Controller extends MY_Controller {
(...)

有关详细信息,请阅读创建核心系统类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM