我遇到问题,从数据库中获取登录的用户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返回空...我做错了什么?
答案 0 :(得分:4)
尝试:
$user_id= $this->users_model->get_userID($this->input->post('email'));
答案 1 :(得分:0)
尝试将模型函数修改为 -
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();
}
}
希望它有所帮助,
费萨尔艾哈迈德 blog / site