2015-05-11 140 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;