不能在codeigniter中建立关系

时间:2014-05-26 11:32:02

标签: php codeigniter

我想在表pelatih和table 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();
    }

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

1 个答案:

答案 0 :(得分:1)

您的型号不正确。如果要从不同的表中获取数据,则应使用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();
}

另请查看文档:{​​{3}}