【问题标题】:Passing array form controller to other controller将数组从控制器传递到另一个控制器
【发布时间】:2014-02-04 07:09:33
【问题描述】:

另一个问题——在用户控制器登录方法中,检查按下按钮(登录或忘记密码)后,在行:$data = $this->user_model->login();返回正确的用户信息;在仪表板中使用的“用户名,家庭,用户ID”用于日志表和页面标题如何将此数据发送到仪表板? 我试图通过 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);

【问题讨论】:

  • 你可以把它们放在会话中:

标签: php codeigniter submit form-submit


【解决方案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'];

……以此类推……..

【讨论】:

    【解决方案2】:

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

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

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

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

    在仪表板中:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多