CakePHP 在 hasMany 关系中搜索

问题描述 投票:0回答:1

我有一个模型内容,它属于类别,有许多发布商,并且发布商属于城市。 还有一个搜索表单,用户可以从下拉框中选择要查看的类别和城市。

但是我怎样才能将这两者结合在一个分页条件中呢?我的意思是我不能做这样的事情:

$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(...)

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

我通常做的是编写自定义查询,其中我左连接所有模型并在 WHERE 中过滤结果。但我想问是否有更多的蛋糕(原文如此)的方式!

谢谢

php cakephp conditional-statements
1个回答
0
投票

当我第一次尝试创建一个具有多种关系的简单搜索引擎时,我也经历过同样的事情。

我使用了多个

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

希望这对你有帮助...

~吉奥

© www.soinside.com 2019 - 2024. All rights reserved.