会话Codeigniter中的访问数组

时间:2015-05-11 07:41:37

标签: php arrays codeigniter session

我的模特:

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);

在我的个人资料视图中:

echo $profile->name;
echo $profile;

两个错误并显示此消息

消息:数组到字符串转换

消息:尝试获取非对象的属性

2 个答案:

答案 0 :(得分: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 :(得分:1)

您正在将其作为对象访问,但它是一个数组,因此您可以按如下方式访问

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

或者通过Object,

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