2010-01-04 35 views
11

我想爲我的php網站創建身份驗證。我正在使用codeigniter框架。我將不得不在我網站的所有頁面上驗證會話。所以爲了避免代碼重複,我打算在輔助函數中執行它。現在我的用戶憑證是 在我的數據庫中,我想訪問該模型以從助手 函數查詢數據庫。在控制器類中,我將通過使用如何訪問模型以從輔助函數查詢數據庫?

$this->load->model('user_model'); 

請讓我知道它在輔助文件中的等價物。任何方式的建議也表示讚賞。提前致謝。

回答

20

您將無法使用$這一訪問一個輔助你的CI實例,但CI有辦法做到這一點 -

首先,您需要將您的CI實例的引用:

$CI =& get_instance(); 

然後,如果你需要加載模型,你可以像這樣:

$CI->load->model('model_name'); 

最後調用任何函數模型是這樣的:

$CI->model_name->function_name(); 

基本上,使用$ CI而不是$ this。希望有所幫助。

1

這不是太多的代碼重複。我建議這種做法:

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

    if ($this->auth->is_logged_in() !== TRUE) // "auth" is the authentication library 
    { 
     redirect('login'); 
    } 
}