将数组从控制器传递到另一个控制器

时间:2014-01-15 17:07:48

标签: php codeigniter submit form-submit

另一个问题 - 在用户控制器登录方法中,在检查按下按钮(登录或忘记密码)后,在行中:$data = $this->user_model->login();返回正确的用户信息; “用户名,系列,用户ID”将在仪表板中用于在日志表中使用,而heAder页面如何将此数据发送到仪表板? 我试图通过redirect()发送它但它失败了

if ($this->form_validation->run() == TRUE) {
        if (!empty($_POST['login'])) {
            $data = $this->user_model->login();
            if ($data != NULL)
                {
             redirect('dashboard');                    
            } else {
                redirect('user/login', 'refresh');
       }
    } elseif (!empty($_POST['forget'])) {
        redirect('user/recover');
    }
}
$this->data['subview'] = 'users/login';
$this->load->view('users/_layout_modal', $this->data);

2 个答案:

答案 0 :(得分:1)

根据您的问题,您正在验证用户登录详细信息并为其创建会话。

然后在会话中存储用户信息。

在config / autoload.php中设置会话库自动加载。然后按以下方式创建会话。

$this->session->set_userdata(
     array(
             "username"=>$username,
             "user_id" => $user_id,
             "family"  => $family    
            )    
);

在仪表板中:

您可以使用其名称访问会话:

echo $this->session->userdata("username");

答案 1 :(得分:1)

函数redirect()不保存任何内容。您可以尝试通过编写$this->session->set_userdata('some_name', $data);

来将$ data保存到会话中

然后您可以使用$this->session->userdata('some_name');

来呼叫他们

请注意,$ data可以是对象或数组。

假设$ data是数组,那么在仪表板中你可以使用这样的东西:

$data = $this->session->userdata('some_name');
echo 'Username: '.$data['username'].'<br />';
echo 'Family: '.$data['family'];

......等等........