CakePHP:如何根据2级深度关联模型订购结果?

时间:2010-04-02 20:46:19

标签: cakephp

我希望我不需要求助于自定义查询。

一个相关的问题是:如何检索数据,以便在关联模型为空时,根本不检索任何记录,而不是关联模型的空数组?

作为一个过于简单的例子,我说我有以下型号: 城市 - >街 - >房子

如何根据门牌号码对城市结果进行排序?

如何检索至少有一个房子的城市修复?我不想要一个带有城市名称和细节的记录以及一个空的House数组,因为它会扰乱分页结果。

CakePHP在单独的查询中检索属于Street的House记录,因此将“House.number DESC”之类的内容放入搜索查询的“order”字段中会返回“字段不存在”错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

在控制器中执行实际查询操作之前,请在模型中设置order子句。

$this->City->Street->hasMany['House']['order'] => "houseNo DESC";

答案 1 :(得分:2)

对于您的第一个问题,我认为您可以通过指定模型关联中的顺序来订购结果。

例如,来自街道模型:

var $hasMany = array('House'=>array('order'=>'address desc'))

如果没有自定义查询,很难让城市中至少有一个房子,所以你最好不要去那条路,而不是花太多时间试图让它在蛋糕上工作。