2014-02-25 88 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瞭解詳情。