2015-05-11 211 views
2

我的模型:訪問陣列

Class Data_Anggota extends CI_Model 
{ 
    function login($username, $password) 
    { 
     $this -> db -> select('*'); 
     $this -> db -> from('data_anggota'); 
     $this -> db -> where('email', $username); 
     $this -> db -> where('password', $password); 
     $this -> db -> limit(1); 

     $query = $this -> db -> get(); 

     if($query -> num_rows() == 1) 
     { 
      return $query->row(); 
     } 
     else 
     { 
      return false; 
     } 
    } 
} 

我的控制器:

$result = $this->data_anggota->login($username, $password); 

$sess_array = array(
    'id' => $result->id_anggota, 
    'username' => $result->email, 
    'name' => $result->nama 
); 
$this->session->set_userdata('GIuser_login', $sess_array); 

.... 

$data['profile'] = $this-> session -> userdata('GIuser_login'); 
$this->load->view('profil_view', $data); 

我profile_view:

echo $profile->name; 
echo $profile; 

錯誤和顯示此消息

留言:數組字符串轉換在

消息:試圖讓非對象

+0

$ sess_array是一個數組,而不是一個對象。試試echo $ profile ['name'] – Craig

+0

是的,我的錯誤..謝謝克雷格,我接受你的回答 – yudijohn

回答

2
$sess_array = array(
    'id' => $result->id_anggota, 
    'username' => $result->email, 
    'name' => $result->nama 
); 
$this->session->set_userdata('GIuser_login', $sess_array); 

的財產,因爲你已經設置會話的用戶信息作爲一個數組,你需要改變你的profile_view

echo $profile->name; 
echo $profile 

echo $profile['name']; 
echo $profile['username']; 

給它一個去,它應該工作。

1

你訪問它的對象,但它是一個數組,因此您可以如下訪問,

echo $profile['name']; 
echo $profile['username']; 

或者通過對象,

$profile = (object)$profile; 
print_r($profile); 
echo $profile->name;