2015-08-31 59 views
2

我正在與codeigniter進行項目合作,這是我第一次使用GroceryCRUD,並且我需要讓患者可以擁有任意數量的報告,我在我的數據庫中有這樣的報告。使用Codeigniter在GroceryCRUD上設置關係

enter image description here

哪裏idpatients是外鍵。

我使用這個我控制器

public function reports() 
{ 
    $crud=$this->grocery_crud; 
    $crud->set_table('reports'); 
    $crud->set_subject('Reports'); 
    $crud->set_language('english'); 
    $crud->set_relation('idpatients','patients','Patient'); 
    $output=$crud->render(); 
    $this->load->view('admin_reports', $output); 
} 

上,我得到這個錯誤

enter image description here

任何幫助,將不勝感激修復它,我怎樣才能申報的關係,所以當我添加一個新的報告,我可以從下拉框中選擇患者或其他東西?

UPDATE

當我改變db_debug假我得到這個錯誤基於documentation

enter image description here

+0

你能調試什麼是和在哪裏'je3b51b9f'來自? – Tpojka

+0

@Tpojka嗨,我沒有任何名爲je3b51b9f的表,所以我認爲是由GroceryCRUD模型庫創建的臨時表 –

回答

1

無效set_relation(字符串$ FIELD_NAME,串$ related_table ,string $ related_title_field [,mixed $ where [,string $ ord er_by]])

設置關係1-n數據庫關係。這將自動創建一個 下拉列表到字段,並顯示字段的實際名稱和 而不僅僅是列表的主鍵。

這意味着,它將從表中的其他然後主鍵顯示字段(和你正在試圖顯示字段Patient這不是在本patients)。

解決您的問題 - 更換PatientName(或其他一些領域,其存在於patinets表):

$crud->set_relation('idpatients','patients','Name'); 
0
$crud->set_relation('idpatients', 'patients', 'name'); 

這創造與患者的名字drowpdownList從表中的病人

你的問題是「病人」,這個專欄不存在你的餐桌上的病人,因爲改變名字查看使用:

$crud->display_as('idpatients', 'Patient'); 

對不起,我的英語