CakePHP搜索hasMany关系

时间:2010-08-10 10:08:28

标签: cakephp conditional-statements

我有一个模型内容,其属于类别,hasMany Publishers和Publisher属于城市。 还有一个搜索表单,有人从下拉框中选择要查看的类别和哪个城市。

但是如何在一个分页条件下组合这两个?我的意思是我做不了类似的事情:

$this->paginate('Content',array('conditions' =>array('Category.id'=>$category,
'City.id'=>$city)));

因为要获得城市蛋糕执行不同的查询。

我也不能做类似的事情:

$this->paginate('Content',array('conditions' =>array('Category.id'=>$category),
 'contain'=>array('Publisher.City'=>array('conditions'=>array(City.id'=>$city)))));

因为这会根据类别进行搜索,并根据$ city过滤城市结果。

我知道我可以这样做:

$this->Content->Publisher->City->find(...)

但这会改变我的分页数据的输出。

我通常做的是编写自定义查询,我将LEFT加入所有模型并在WHERE中过滤结果。但我想问一下,如果有更多的蛋糕(原文如此)方式!

感谢

1 个答案:

答案 0 :(得分:0)

当我第一次尝试创建一个具有很多关系的简单搜索引擎时,我遇到了同样的事情。

我使用多个$this->find()并将其分配给变量,然后分配给我使用$this->paginate(array_merge(name of the variables used in $this->find()));的分页代码。

希望这会对你有所帮助......

〜GIO