我希望能够在控制器中定义分页变量时将'或'条件放在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']是我需要循环的值或值。或者,查询将如下:
SELECT * FROM petitions WHERE commune_id = 971 OR commune_id = 123 OR commune_id = 321 OR commune_id = 432
但当然我可以在find函数中执行此操作,但我想对此结果进行分页...
答案 0 :(得分:1)
您想要的是查询:
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
);