将数组值传递给控制器​​并在视图中显示在Codeigniter中

时间:2015-04-22 11:00:20

标签: php codeigniter

我是Code Igniter的新手。我试图将一个数组从一个控制器传递到另一个控制器到另一个控制器,然后在视图中显示这些值。但它不起作用。

1号控制器

if($query)
{
    $data = array(
        'user' => $this->input->post('email'),
        'is_logged_in' => true
    );

    $this->session->set_userdata($data);
    redirect('site/member_area',$data);
}
else {
    $this->index();
}

具有member_area()函数的控制器2号

function member_area()
{
    $data['title'] = 'Dashboard';
    $data['main_content'] = 'members_area'; 
    $this->load->view('includes/main_template',$data);
}

在视图中我试图在视图中显示使用此语句在控制器1中显示的'用户'名称

echo $user;

但它没有显示用户名,即$ data ['user']。该视图仅包含从2号控制器收到的值

2 个答案:

答案 0 :(得分:2)

您可以将会话变量定义为

$this->session->set_userdata('mysession',$data);

并可以从会话中访问值

echo $this->session->userdata['mysession']['user'];// your email or username

答案 1 :(得分:1)

您需要在代码中进行一些更改。因为您将会话值称为简单数组。这对你有用..

控制器1

$data = array(
    'user' => $this->input->post('email'),
    'is_logged_in' => true
);

$this->session->set_userdata('retrieveData',$data);

在您的视图中,您可以使用

访问该视图
$retrieveData   = $this->session->userdata('retrieveData'); // will return the array

$userid = $this->session->userdata['retrieveData']['user'];// retrieving single element from session 
echo $userid;