2013-07-16 48 views
1

每次調用任何控制器時都會執行一些代碼,如身份驗證檢查(查看用戶是否已登錄,檢查用戶名)以及我的優先級,記錄頁面url和能夠在下一頁加載時回顯上一頁。每個頁面加載w/Codeigniter時執行代碼?

每當一個控制器被調用時,我會如何執行這樣的事情?

function page_load(){ 
    $this->session->set_flashdata('prev_page', $this->uri->uri_string()); 
    if($this->tank_auth->is_logged_in()){ 
     $username = $this->tank_auth->get_username; 
    } else { 
     $username = 'Guest'; 
    } 
} 
+0

之前添加[鉤(http://ellislab.com/codeigniter/user-guide/general/hooks.html)? – naththedeveloper

回答

2

您可以通過擴展Controller類來做到這一點。

<?php 
class MY_Controller extends CI_Controller { 

    public function __construct() 
    { 
     parent::__construct(); 
     // Your own constructor code 
     // Do any code you want run every time a controller loads 
    } 
} 
?> 

然後在您的控制器中,您將擴展CI_Controller,而不是擴展My_Controller。

class Welcome extends MY_Controller { 

    function __construct() 
    { 
    parent::__construct(); 
    } 

    function index() 
    { 
    $this->load->view('welcome_message'); 
    } 
} 

見文檔here