2010-06-27 58 views
5

当我搜索一个“有很多”别的东西的模型。Cakephp,订购相关表

例如,博客文章有很多类别。

当搜索与相关类别相关的博客帖子时,如何订购关联的类别?当数组返回时,它会忽略类别模型上的顺序,并且默认为它的通常的id顺序。

干杯。

回答

22

另外,你可以设置你的模型关系的顺序。

<?php 
class Post extends AppModel { 
    var $hasMany = array(
    'Category' => array(
     'className' => 'Category', 
     ... 
     'order' => 'Category.name DESC', 
     .... 
    ), 
}?> 
+0

非常感谢你! – Vicer 2012-03-14 05:45:35

0

您可以指定find方法参数的order属性。否则,它将默认为最顶级/父级模型的订单。在你的情况下,Category.id

+0

相关的模型下令对模型本身,你在哪里它添加它时,你获得相关的发现“有很多'在模型上? – Smickie 2010-06-27 18:30:26

+0

发布您用于检索模型数据的代码或查看http://book.cakephp.org/view/1018/find。我相信你想设置'订单'参数。 – 2010-06-27 20:03:00

+0

A有许多关系意味着2个单独的查询 - 当您在查找方法上设置订单属性时,您会收到错误,因为关联的模型未包含在原始查询中,因此'不存在'。 – 2017-06-22 16:41:44

3

CakePHP中3,而不是使用“秩序”“排序”:

<?php 
class Post extends AppModel { 
    var $hasMany = array(
    'Category' => array(
     'className' => 'Category', 
     ... 
     'sort' => 'Category.name DESC', 
     .... 
    ), 
}?>