Как ограничить количество записей из связанной модели - PullRequest
2 голосов
/ 31 мая 2010

В простой модели CakePHP, где у пользователя есть много предметов (а товар принадлежит пользователю) - Предположим 50 пользователей, по 10 штук. Как я могу найти () только 5 пользователей, каждый с последними 5 предметами, которые у него есть? Когда я налагаю ограничение на поиск, оно ограничивает только количество пользователей, а не количество связанных элементов.

Ответы [ 2 ]

7 голосов
/ 01 июня 2010

Просто укажите атрибут limit в объявлении модели hasMany.

var $hasMany = array(
    'Comment' => array(
        'className'     => 'Comment',
        'foreignKey'    => 'user_id',
        'conditions'    => array('Comment.status' => '1'),
        'order'    => 'Comment.created DESC',
        'limit'        => '5',
        'dependent'=> true
    )
);  

(Соответствующие реквизиты для CakePHP Book page , с которого я украл этот код.)

5 голосов
/ 05 мая 2011

Опция. В вашем контроллере:

$this->User->hasMany['Item']['limit'] = 1;

Это ограничит количество предметов. Я не проверял заказ, но это должно работать:

$this->User->hasMany['Item']['order'] = 'Item DESC';
...