2014-02-25 85 views
0

我有一个相对简单的问题。我试图从一个PHP超类继承构造函数来验证这个控制器。继承构造函数php 5.2.6

这里是我的超类:

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

您需要确保打开错误报告。这就是为什么你会得到一个“白页”。检查你的日志。编辑'index.php'并设置define('ENVIRONMENT','development');'。 –

+0

我几乎可以肯定你的问题与'session_start()'调用有关。你可以通过调用'error_reporting(-1)'和'ini_set('display_errors',1)'来启用错误吗? – galymzhan

+0

这是在做什么文件?我是codeigniter的新手。 –

回答

0

您的解决方案是行不通的,你应该尝试之一:

移动验证码:

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

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

到对自定义库,比运行该库在你的控制器的构造函数中。详情请阅读Creating Libraries

或:

创建MY_Controller类,并把授权码(以上报价)到它的构造。比你能够延长,如:

class Event_Controller extends MY_Controller { 
(...) 

请仔细阅读Creating Core System Classes了解详情。