当我搜索一个“有很多”其他东西的模型时。例如,博客文章有许多类别。当搜索与类别关联的博客文章时,我如何排序关联的类别?当返回数组时,它忽略类别模型上的顺序,默认为它通常的id顺序。干杯干杯干杯
j2cgzkjk1#
此外,您可以在模型的关系中设定顺序。
<?php class Post extends AppModel { var $hasMany = array( 'Category' => array( 'className' => 'Category', ... 'order' => 'Category.name DESC', .... ), }?>
jaql4c8m2#
在cakephp 3中使用“sort”而不是“order”:
<?php class Post extends AppModel { var $hasMany = array( 'Category' => array( 'className' => 'Category', ... 'sort' => 'Category.name DESC', .... ), }?>
hs1rzwqc3#
您可以使用ContainableBehavior执行此操作:
$this->Post->find('all', array('contain' => array( 'Category' => array( 'order' => 'Category.created DESC' ) )));
http://book.cakephp.org/view/1325/Containing-deeper-associations
inn6fuwd4#
您可以指定find方法参数的order属性。否则,它将默认为最顶层/父模型的顺序。在您的情况下,Category.id。
find
order
Category.id
wj8zmpe15#
按关联模型中的列排序需要设置sortWhitelist。
sortWhitelist
$this->paginate['order'] = [ 'Fees.date_incurred' => 'desc' ]; $this->paginate['sortWhitelist'] = ['Fees.date_incurred', 'Fees.amount']; $this->paginate['limit'] = $this->paginate['maxLimit'] = 200;
5条答案
按热度按时间j2cgzkjk1#
此外,您可以在模型的关系中设定顺序。
jaql4c8m2#
在cakephp 3中使用“sort”而不是“order”:
hs1rzwqc3#
您可以使用ContainableBehavior执行此操作:
http://book.cakephp.org/view/1325/Containing-deeper-associations
inn6fuwd4#
您可以指定
find
方法参数的order
属性。否则,它将默认为最顶层/父模型的顺序。在您的情况下,Category.id
。wj8zmpe15#
按关联模型中的列排序需要设置
sortWhitelist
。