我已创建会话并将User_id
分配给会话变量。当我使用print_r();
时,它会向我显示关联数组中的会话变量数据,但是当我使用foreach时,它会给我很多错误消息。
请检查并指导我在这里做错了什么。
print_r($session_dataa= $this->session->all_userdata());
Session dataArray ( [session_id] => 5943ecd761c336e70240b25d37b054b8
[ip_address] => ::1
[user_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0)
Gecko/20100101 Firefox/28.0
[last_activity] => 1397982790
[user_data] => [41] => )
我想抓取[user_data]=> [41]
并存储在student_id
变量中。为了实现这一点,我使用了foreach循环,但它给了我以下错误信息。
$session_data= $this->session->all_userdata();
foreach ($session_data as $data)
{
$student_id = $data->user_data;
}
Severity: Notice
Message: Trying to get property of non-object
Filename: views/students.php
Line Number: 32
这就是我将User_id分配给会话数据的方式。 的 mycontroller.php
//[[session]]
$data['students_data']= $this->loginmodel->student_profile($currentId);
$this->load->library('session');
$this->session->set_userdata($currentId);
答案 0 :(得分:3)
您没有将current_id
与任何变量相关联,下面给出了将值分配给会话变量的正确方法;
<强>控制器强>
$this->load->library('session');
$this->session->set_userdata(array(
'currentId' =>$current_id
));
查看
$student_id = $this->session->userdata('currentId');
答案 1 :(得分:2)
要获取会话变量,只需执行
$this->session->userdata('user_data');
当你使用像这样的会话类访问会话变量时,它会自动检查它是否设置,这样你就不会收到任何错误。
答案 2 :(得分:1)
怎么样
$student_id= $session_data['user_data'];
答案 3 :(得分:0)
试试这个
$session_data= $this->session->all_userdata();
$student_id = $session_data[user_data];
OR
$session_data= $this->session->all_userdata();
foreach ($session_data as $data)
{
$student_id = $data[user_data];
}