2014-09-04 45 views
2

我從CodeIgniter中的Flex Auth開始,我應該錯過或誤解某些東西。

任何想法爲什麼這段代碼給出了「從空值創建默認對象」錯誤?

我的代碼:

$this->load->library('flexi_auth'); 

$email = '[email protected]'; 
$username = 'nils'; 
$password = 'nilsnils'; 
$user_data = ''; 
$group_id = 1; 
$activate = TRUE; 

$this->flexi_auth->insert_user($email, $username, $password, $user_data, $group_id, $activate); 

出口();

的其他嘗試以虛假爲$ USER_DATA:

$this->flexi_auth->insert_user($email, $username, $password, FALSE, $group_id, $activate); 

給出了同樣的錯誤。

用戶被添加到數據庫。 但有此錯誤在頁面上:

A PHP Error was encountered 
Severity: Warning 
Message: Creating default object from empty value 
Filename: models/flexi_auth_lite_model.php 
Line Number: 47 

這是在型號/ flexi_auth_lite_model.php線47:

$this->auth->session_name = $this->config->item('sessions','flexi_auth'); 

我沒有在互聯網上找到的東西,我可以理解爲「flexi_auth-> insert_user「和」從空值創建默認對象「。

感謝您的幫助。 Nils。

回答

2

今天我在新安裝中遇到了這個問題。事實證明,在加載flexi-auth庫之前,必須將$ this-> auth聲明爲控制器中的標準類對象。這在演示驗證控制器(demo-files/application/controllers/auth.php,第27-29行)中有記錄,但不在安裝說明中。您需要的代碼是:

// IMPORTANT! This global must be defined BEFORE the flexi auth library is loaded! 
// It is used as a global that is accessible via both models and both libraries, without it, flexi auth will not work. 
$this->auth = new stdClass; 

// Load 'standard' flexi auth library by default. 
$this->load->library('flexi_auth'); 

我正在使用自定義MY_Controller,因此我將代碼添加到構造函數中。

相關問題