首页 文章

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

提问于
浏览
1

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

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

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

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

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

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

有任何想法吗?

2 回答

  • 3

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

    例如,来自街道模型:

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

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

  • 2

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

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

相关问题