如何在会话(CodeIgniter)上设置登录的用户ID



我遇到了麻烦,从数据库中获取登录的用户ID…

这是我的控制器代码:
        function validation(){
    $this->load->model('users_model');
    $query = $this->users_model->validate();
    if ($query){
        $this->users_model->get_userID($this->input->post('email'));
        $data = array( 
        'email' => $this->input->post('email'),
        'is_logged_in' => true,
        'user_id' => $user_id
        );
        $this->session->set_userdata($data);            
        redirect('home');
    }
    else {
        $this->index();
    }
}
这是我的模型函数,我从数据库返回用户id:
       function get_userID($email){
    $this->db->where('email',$email);
    $query = $this->db->get('users');       
    foreach ($query->result() as $row)
        {
            $user_id = $row->id;
        }
        return $user_id;
}

一切工作完美,除了$user_id返回空…我做错了什么?

尝试:

$user_id= $this->users_model->get_userID($this->input->post('email'));

尝试将模型函数修改为-

function get_userID($email){
  $this->db->where('email',$email);
  $query = $this->db->get('users')->row_array(); // retrieves only first-row.
  return $query['id'];
}

在控制器中,函数只需要做如下修改-

function validation(){
    $this->load->model('users_model');
    $query = $this->users_model->validate();
    if($query){
        //$user_id was not assigned before :)
        $user_id = $this->users_model->get_userID($this->input->post('email')); 
        $data = array( 
        'email' => $this->input->post('email'),
        'is_logged_in' => true,
        'user_id' => $user_id
        );
        $this->session->set_userdata($data);            
        redirect('home');
    }
    else {
        $this->index();
    }
}

希望有帮助,

费萨尔艾哈迈德博客/网站

最新更新