从数组codeigniter中检索特定值

时间:2014-02-26 10:07:31

标签: php codeigniter session session-variables

我在codeigniter中创建了以下会话,

 $data = array(
                'employee_id' => $row->employee_id,
                'f_name' => $row->f_name,
                's_name' => $row->s_name,
                'user_name' => $row->user_name,
                'title' => $row->title,
                'is_active' => $row->is_active,
                'validated' => true
            );
            $this->session->set_userdata('user', $data);

如何从会话中检索employee_id的值?

我尝试过以下方式在不同的功能中访问它,但我一直在收到错误

$data = $this->session->userdata('user');

        $data['month'] = $month;
        $data['year'] = $year;

        $this->session->set_userdata('user', $data);
        $data['user_data'] = $this->session->userdata('user');

        var_dump($data);

        foreach ($user_data  as $value) {
            echo $value;
              echo 'Employee ID :'.$value->employee_id.'</br>';
        echo 'Month Session : '.$value->year.'</br>'; 

        }

请告知最佳访问方式?

3 个答案:

答案 0 :(得分:1)

IN Controller,请调用会话库

$this->load->library('session');

现在在视图中

$data = $this->session->userdata('user');
$employee_id = $data['employee_id'];

答案 1 :(得分:0)

$data['user_data'] = $this->session->userdata('user');将返回数据数组。

因此,您可以访问$data['user_data']["employee_id"]

答案 2 :(得分:0)

确保您在控制器中加载会话库,因为如果您这样做,则不清楚。你可以通过

来做到这一点
$this->load->library('session');

或自动加载它。

然后需要将代码更改为

foreach ($data['user_data'] as $value) {
    echo 'Employee ID :' . $value['employee_id'] . '</br>';
    echo 'Month Session : ' . $data['year'] . '</br>'; 
}