无法在编码器中建立关系


cannot make relation in codeigniter

我想在表pelatih和表absen中创建一个关系表。但是当我尝试创建一个关系id_pelatih时,它总是输入数字"3"。

这是控制器:

function absen()
    {
        $this->load->library('user_agent');
        $nim = $this->uri->segment(4);
        $id_user = $this->session->userdata('user_id');
        $id_pelatih = $id_pelatih;
        $this->load->model('mabsensi');
        $data = array(
            'id_pelatih'    => $this->mlogin->get_data_pelatih_by_id_user($id_user)->id_pelatih,
            'nim'           => $nim,
            'tanggal'       => date('Y-m-d H:i:s'),
            'keterangan'    => 'Hadir'
        );
        $this->mabsensi->insert_absensi($data);
        redirect($this->agent->referrer());
    }

这是模型

    function get_data_pelatih_by_id_user($id_user)
    {
        $this->db->select('*')
            ->from('pelatih as a, user as u')
            ->where('a.id_user = u.id_user')
            ->limit(1);
        return $this->db->get()->row();
    }

请告诉我如何解决这个问题

你的模型不正确。如果希望从不同的表中获取数据,则应该使用JOIN。你必须说你需要哪条记录。因此,在查询中添加WHERE语句。

function get_data_pelatih_by_id_user($id_user)
{
     $this->db->SELECT('*')
              ->FROM('user')
              ->WHERE('id_user', $id_user) // your parameter, you did not use it
              ->JOIN('pelatih', 'pelatih.id_user = user.id_user');
     return $this->db->get();
}

也可以看一下文档:http://ellislab.com/codeigniter/user-guide/database/active_record.html