如何使用活动记录从代码点火器中的另一个表中获取值


How to get values from another table in codeigniter using the Active Record?

所以我有两个表,第一个是这个,user_account表。
此表用于登录。

ID | login_id | role    | password
---+----------+---------+---------
1  | 1110QA   | admin   | password  
2  | 1110QB   | teacher | password
3  | 1110QC   | teacher | password

这是我的第二张桌子,是老师的桌子。
而这张表是我将获得老师信息的地方,比如她的名字。

ID | teacher_id | fname | mname   | lname   | email
---+------------+-------+---------+---------+---------------
1  | 1110QA     | John  | Vincent | Doe     | jvd1@gmail.com
2  | 1110QB     | Mary  | Pop     | Poppins | mpp2@gmail.com
3  | 1110QC     | Julie | Ken     | Clark   | jkc3@gmail.com

我想说的是,我将userid(login_id(存储在user_account表中,并将用户详细信息存储在教师表中。所以我的问题是如何使用我登录的帐户访问教师表中的值?我阅读了有关活动记录的信息,但我的代码仍然不起作用。它不会打印任何内容,但没有任何错误。这是我的代码。我不确定我的查询是否正确以及我的控制器是否正确。

控制器:

class Site extends CI_Controller {
  public function teacher(){ 
    $this->load->model('model_teacher');
    $id = $this->input->post('idnum'); 
    $data['result'] = $this->model_teacher->scoreboard($id);
    $this->load->view('teacher/teacher', $data);
  }
}

型:

 class Model_teacher extends CI_Model {
    public function scoreboard($id) {
        $query = $this->db->get_where('teacher', array('login_id' => '$id'));
        return $query->result_array();
    }
} 

视图:

<?php
    foreach ($result as $an) {
            echo $an['login_id'];
            echo $an['lname'];
            echo $an['mname'];
            echo $an['fname'];
        }
 ?>    
请帮助我,

请耐心等待,伙计们,我仍然是使用这种框架的新手。

你需要使用join;代码点火器参考(搜索连接(

class Model_teacher extends CI_Model {
    public function scoreboard( $id ) {
        $q = $this->db->select('user_account.login_id, teacher.*') //select what we need
                      ->join('teacher', 'user_account.login_id = teacher.teacher_id') //do join
                      ->where(['user_account.id' => $id]) //where clause
                      ->get('user_account'); 
        return ($q->num_rows() > 0) ? $q->result_array() : array(); //is there something to return? otherwise return an empty array
    }
}