我希望我不需要求助于自定义查询。
一个相关的问题是:如何检索数据,以便在关联模型为空时,根本不检索任何记录,而不是关联模型的空数组?
作为一个过于简单的例子,我说我有以下型号: 城市 - >街 - >房子
如何根据门牌号码对城市结果进行排序?
如何检索至少有一个房子的城市修复?我不想要一个带有城市名称和细节的记录以及一个空的House数组,因为它会扰乱分页结果。
CakePHP在单独的查询中检索属于Street的House记录,因此将“House.number DESC”之类的内容放入搜索查询的“order”字段中会返回“字段不存在”错误。
有什么想法吗?
答案 0 :(得分:3)
在控制器中执行实际查询操作之前,请在模型中设置order子句。
$this->City->Street->hasMany['House']['order'] => "houseNo DESC";
答案 1 :(得分:2)
对于您的第一个问题,我认为您可以通过指定模型关联中的顺序来订购结果。
例如,来自街道模型:
var $hasMany = array('House'=>array('order'=>'address desc'))
如果没有自定义查询,很难让城市中至少有一个房子,所以你最好不要去那条路,而不是花太多时间试图让它在蛋糕上工作。