codeigniter ion auth获取用户ID

时间:2013-06-16 17:59:23

标签: codeigniter

我需要获取登录用户的用户ID,以便我可以为该用户运行查询。我使用离子身份验证,我应该使用会话或从数据库中调用它,我应该使用帮助器吗?无论如何,继承人试图做的事情:

示例:用户登录了多少个工单? 查询将是:select * from work_orders WHERE status =“1”AND userid =“%THE LOGGED IN USER”

这是我的控制器,它没有“获取用户ID”代码:

public function index()
{
    $this->load->view('templates/header');
    $data['total_open_wo'] = $this->Home_model->total_open_wo();
    $data['result'] = $this->Home_model->index();
    $this->load->view('home', $data);
    $this->load->view('templates/footer');

}

这是我的模特:

public function total_open_wo()  {

        $this->db->where('status', "1");
        $this->db->where('tid', "NEED_THE_USER_ID");
        $num = $this->db->count_all_results('work_orders');

        return ($num);
    }

2 个答案:

答案 0 :(得分:13)

如果用户已登录,您可以使用ion auth中的get_user_id()功能获取用户ID。在模型中的相关注释中,您需要$this->db->from()调用来设置表以从中获取行数。

public function total_open_wo() {
  $userId = $this->ion_auth->get_user_id();
  $this->db->where('status', '1');
  $this->db->where('tid', $userId);
  $this->db->from('work_orders');
  $num = $this->db->count_all_results();

  return $num;
}

使用函数$this->ion_auth->logged_in()确保用户在调用模型函数之前已登录。

答案 1 :(得分:12)

您可以使用 user() 方法检索登录的用户详细信息。

例如获取用户ID

echo $this->ion_auth->user()->row()->id;