[英]Cakephp pagination with or condition
我希望能夠在控制器中定義分頁變量時將“或”條件放入foreach循環中,如下所示:
foreach($p as $ps){
$this->paginate = array(
'or' => array(
array('Petition.commune_id LIKE' => $commune_ids['Commune']['id'] . ","),
),Recipe
'limit' => 10
);
}
我知道上面的說法是錯誤的,但出於示例目的,我已經編譯了代碼。 有什么辦法可以做到這一點嗎?
我需要循環,因為我希望能夠使用另一個表的ID(已通過find方法將其作為數組讀取),並將其用於當前表(即Petitions表)中的循環。 $ commune_ids ['Commune'] ['id']是我需要遍歷as或value的內容。 或者,查詢將類似於:
SELECT * FROM petitions WHERE commune_id = 971 OR commune_id = 123 OR commune_id = 321 OR commune_id = 432
但是我當然可以在find函數中執行此操作,但是我想對結果進行分頁...
您想要的是查詢:
SELECT * FROM petitions WHERE commune_id IN (971, 123, ...)
在Cake中,這是:
'conditions' => array(
'Petition.commune_id' => array(971, 123, ...)
)
因此,您創建了一個ID數組,可以將其放入條件中。 做完了
$communeIds = /* assemble array somehow */;
$this->paginate = array(
'conditions' => array(
'Petition.commune_id' => $communeIds
),
'limit' => 10
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.