Cakephp, заказ связанных таблиц - PullRequest
5 голосов
/ 27 июня 2010

Когда я ищу модель, в которой «много» чего-то еще.

Например, в сообщении блога есть много категорий.

При поиске записи в блоге со связанными категориями, как мне упорядочить связанные категории?Когда массив возвращается, он игнорирует порядок в модели категории и по умолчанию принимает его обычный порядок идентификаторов.

Cheers.

Ответы [ 4 ]

23 голосов
/ 28 июня 2010

Кроме того, вы можете установить порядок в отношении вашей модели.

<?php
class Post extends AppModel {
  var $hasMany = array(
    'Category' => array(
        'className' => 'Category',
        ...
        'order' => 'Category.name DESC',
        ....
    ),
}?>
4 голосов
/ 17 августа 2015

в cakephp 3 используйте «sort» вместо «order»:

<?php
class Post extends AppModel {
  var $hasMany = array(
    'Category' => array(
        'className' => 'Category',
        ...
        'sort' => 'Category.name DESC',
        ....
    ),
}?>
3 голосов
/ 28 июня 2010

Вы можете сделать это с помощью ContainableBehavior:

$this->Post->find('all', array('contain' => array(
    'Category' => array(
        'order' => 'Category.created DESC'
    )
)));

http://book.cakephp.org/view/1325/Containing-deeper-associations

0 голосов
/ 27 июня 2010

Вы можете указать атрибут order параметров метода find. В противном случае по умолчанию будет использоваться порядок для самой верхней / родительской модели. В вашем случае Category.id.

...