簡體   English   中英

如何從Codeigniter中的表獲取用戶名

[英]How to get user name from the table in codeigniter

我有2個表,一個保留日志,另一個保留用戶名。

表一(日志)有

ID|USERID|DATETIME|MESSAGE

表二(用戶)有

ID|USERNAME|PASSWORD

在codeigniter模型中,我有

    function getRlog(){

    $this->db->limit(100);
    $this->db->order_by("id","desc");
    $this->db->where('type', "reservation");
    $q = $this->db->get('logs');
        if($q->num_rows() > 0) {
        foreach($q->result() as $row){
            $data[] = $row;
        }
    return $data;
   }

}

在控制器中,我有...

    function log(){
        if (!$this->ion_auth->is_admin())
    {
        $this->session->set_flashdata('message', 'You must be an admin to view this page');
        redirect('auth/login');
        } else {
        $data ['user'] = $this->ion_auth->get_user();
        $this->load->model('Logs_model');
        $data['logs'] = $this->Logs_model->getRlog();
        $this->load->view('database/log', $data);

        }
}

我想根據日志表中的ID用戶表中獲取用戶名 我應該創建一個外鍵嗎? 並且,如果我怎么獲得用戶名?

您可能會在模型中這樣做

function getRlog(){

    $this->db->limit(100);
    $this->db->order_by("id","desc");
    $this->db->where('type', "reservation");
    $q = $this->db->get('logs');
    if($q->num_rows() > 0) {
        $data = array();  //create new data array to be returned
        foreach($q->result() as $row){
            $row->user = $this->ion_auth->get_user($row->userid);  //create new user property that contains user object
            $data[] = $row;  //append to new data array with appended user property
        }
        return $data;
    }
    else {
        return false; //if no results make sure you return something, either false or empty array depending on your needs.
    }
}

這樣,假設您的控制器保持不變,您就可以從模型返回的日志結果中訪問整個用戶對象。

視圖

foreach($logs as $log) {
    echo $log->user->username;
}

甚至...

foreach($logs as $log) {
    echo $log->user->email; //etc...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM