Как получить имя пользователя из таблицы в codeigniter - PullRequest
0 голосов
/ 07 марта 2011

У меня есть 2 таблицы: одна ведет журнал, а другая - имя пользователя.

Таблица 1 (журналы) имеет

ID|USERID|DATETIME|MESSAGE

Таблица 2 (пользователи) имеет

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);

        }
}

Я хочу получить имя пользователя оттаблица users на основе id из таблицы журналов.Должен ли я создать внешний ключ?и если я делаю, как я могу получить имя пользователя?

1 Ответ

0 голосов
/ 07 марта 2011

вы можете сделать это так в вашей модели

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.
    }
}

Таким образом, вы можете получить доступ ко всему объекту пользователя из результатов журнала, возвращенных из модели, примерно так, при условии, что ваш контроллер остался прежним.

View

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

или даже ...

foreach($logs as $log) {
    echo $log->user->email; //etc...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...