1
我的需求是在2個不同的表格上搜索:Vets和Clinics。他們之間可能存在關係,即結果應該是獲得名義上的'a'和獸醫中有'a'的獸醫。獸醫可能與診所有關,也可能不是。目前我正在做以下事情。是否有任何方法可以避免運行2個查詢,這也可以幫助我使用cakephp分頁助手?Cakephp中的多個模型的單分頁
$this->paginate = array(
'Vet' => array(
'conditions' => $conditions,
'fields' => array('Vet.id', 'Vet.name', 'Vet.professionnal_address', 'phone_number', 'Vet.email', 'Vet.type', 'Vet.latitude', 'Vet.longitude','Vet.city','Vet.clinic_id','Vet.zipcode'),
'joins' => array(
array(
'table' => 'vet_appointment_types',
'alias' => 'VetAppointmentType',
'type' => 'LEFT',
'conditions' => array(
'Vet.id = VetAppointmentType.vet_id',
)
)
),
'limit' => $limit,
'group' => array(
'Vet.id'
),
'order' => array(
'Vet.name' => 'ASC'
)
),
'Clinic' => array(
'conditions' => $conditions1,
'fields' => array('Clinic.*'),
'limit' => $limit,
'order' => array(
'Clinic.name' => 'ASC'
)
)
);
$results = $this->paginate('Vet');
$results2 = $this->paginate('Clinic');
我試圖在非數據庫模型擴展默認分頁成分並且有點複雜使用UNION但數據庫結構,所以不能用結合。另外,我認爲實現基於臨時表的模型將是一種選擇,但由於它將用於搜索,所以我無法想象如何實施它。任何幫助將被+1);
如果您不能使用聯合或視圖,您將很難分頁來自兩個表的非關聯數據。爲此,我將使用彈性搜索實現搜索索引。 – burzum
如果我要使用臨時表來存儲來自tabled和search的數據,它會是一個乏味的方法嗎? – Sp0T
它會和任何數據更改時,你將不得不改變臨時表。也許你應該看看數據庫視圖? – MBosman