2015-08-08 139 views
1

您好我是codeigniter框架的初學者,我無法理解如何從方法返回的數組中檢索信息。如何從數組中檢索信息

在我的索引頁上我有登錄表單,當用戶插入用戶名和密碼並單擊提交按鈕時,他調用控制器的方法登錄,其任務是從表單收集用戶名和密碼並將數據傳遞給模型方法「login $ username,$ password)「,然後模型方法返回true或false,取決於我們在數據庫中是否有有效的用戶,然後控制器的方法或者進一步傳遞用戶或者在開始時返回他。我的問題是,我想知道用戶訪問級別,我在模型製作這種方法

public function users_level($username){ 

$query = $this->db->get_where('users',array('username' => $username)); 

$users_level = $query->result(); // I tried with these too $users_level[] = $query->result();  

return $users_level; 

}

與我想回到用戶的訪問級別,並使用該信息,以確定該特定用戶有什麼看法。

這是從控制器登錄方法:

public function login(){ 
    $username = $this->input->post('username'); 
    $password = $this->input->post('password'); 

    $this->load->model('model_user'); 
    $logged_in = $this->model_user->login($username,$password); 
    if ($logged_in == true){  
     $result['level'] = $this->model_user->users_level($username); 
     $this->welcome($result);      
    }else if ($logged_in == false){ 
     $this->index(); 
    } 
} 

這是我的歡迎頁面。

<?php 
echo "<br/><br/> WELCOME <br/><br/>"; 

//echo "Users level is : " . $user_level['level'];  //this is problem 

?> 
<?php 
     print_r($user_level); 

?> 

,現在我不知道如何提取從陣列信息。 當我做

print_r($user_level); 

看到的輸出是什麼,我得到這個的結果是:

歡迎

Array ([level] => Array ([0] => stdClass Object ([id] => 13 [username] => john_username [password] => 123 [name] => john [surname] => johnson [phone] => 123456 [email] => [email protected] [level] => 2 [user_type] => professor [activated] => 1 [is_admin] => 0 [is_professor] => 1 [desk] => [academic_year] => 0 [average_grade] => 0))) 

,如果我嘗試做這樣的事情:

echo "Users level is : " . $user_level['level']; 

或者:

發生
echo "Users level is : " . $user_level->level; 

錯誤:

A PHP Error was encountered 
Severity: Notice 
Message: Trying to get property of non-object 
Filename: views/view_welcome_page.php 

我明白,這是不是一個對象,但我不知道如何檢索列信息 - 從我的表級? 由於事先

+0

你列'level'是2級深 - '$ user_level ['level'] [0] ['level']' – Sean

+0

我的錯誤,我很抱歉。這解決了我的問題。非常感謝 – useruser

回答

0
edit your code in function as 
$users_level = $query->result_array(); 

then u will get info like 

$userlevels = Array ("level" => Array ("0" => array ("id" => '13'))); 
echo "Users level is : " . $userlevels['level'][0]['id']; 
+0

你可以得到像其他信息一樣的模式。 –

+0

沒有,當我複製並粘貼您的生產線,這是發生 一個PHP錯誤的錯誤時遇到 嚴重性:注意 消息:未定義抵消:0 文件名:觀點/ view_welcome_page.php – useruser

+0

喜哪裏る印刷這個數組,在視圖文件或控制器? –

0

如果你想數組(單列),然後編輯模式是這樣的:多行

$users_level = $query->row_array(); 
return $users_level; 

$query->result_array(); 
+0

好吧,我嘗試,但仍然當我嘗試做: 回聲「用戶級別是:」。 $ user_level->水平; 發生同樣的錯誤:消息:試圖獲取非對象的屬性 – useruser

+0

- >表示對象。用row_array()或result_array()來檢索數組。所以你應該使用$ user_level ['level'] – user1587985