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

如何在会话(CodeIgniter)上设置登录的用户ID?,codeigniter,Codeigniter,我遇到问题,从数据库获取登录的用户ID 这是我的控制器代码: function validation(){ $this->load->model('users_model'); $query = $this->users_model->validate(); if ($query){ $this->users_model->get_userID($this->input->post('em

我遇到问题,从数据库获取登录的用户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\u id返回空之外,一切都很正常。。。我做错了什么?

试试:

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


尝试将模型函数修改为此-

函数获取用户ID($email){
$this->db->where('email',$email);
$query=$this->db->get('users')->row_array();//只检索第一行。
返回$query['id'];
}
在控制器中,该功能只需进行如下修改-

函数验证(){
$this->load->model('users\u model');
$query=$this->users\u model->validate();
如果($query){
//$user\u id以前未分配:)
$user\u id=$this->users\u model->get\u userID($this->input->post('email');
$data=数组(
'email'=>this->input->post('email'),
'是否已登录'=>正确,
'user\u id'=>$user\u id
);
$this->session->set_userdata($data);
重定向(“主页”);
}
否则{
$this->index();
}
}
希望有帮助

费萨尔·艾哈迈德
/

尝试将模型功能修改为-

函数获取用户ID($email){
$this->db->where('email',$email);
$query=$this->db->get('users')->row_array();//只检索第一行。
返回$query['id'];
}
在控制器中,该功能只需进行如下修改-

函数验证(){
$this->load->model('users\u model');
$query=$this->users\u model->validate();
如果($query){
//$user\u id以前未分配:)
$user\u id=$this->users\u model->get\u userID($this->input->post('email');
$data=数组(
'email'=>this->input->post('email'),
'是否已登录'=>正确,
'user\u id'=>$user\u id
);
$this->session->set_userdata($data);
重定向(“主页”);
}
否则{
$this->index();
}
}
希望有帮助

费萨尔·艾哈迈德
/

@Rick Rhodes您应该接受这个问题。请在他的答案下面找到灰色的勾号,然后单击它。它应该是绿色的。如果您不尽快将答案标记为正确,您将无法在此处提问。@Rick Rhodes您应该接受该问题。请在他的答案下找到灰色的勾号并单击它。它应该是绿色的。如果您不尽快将答案标记为正确,您将无法在此处提问。顺便说一句,再次查看代码时,您还应该检查validate()函数,因为如果它不返回TRUE,则永远不会访问模型函数。顺便说一句,再次查看代码时,您还应该检查validate()函数,因为如果它不返回TRUE,则永远不会访问模型函数。