CakePHP: Как указать модели при получении данных? - PullRequest
0 голосов
/ 23 ноября 2010

Я хочу получить данные с рекурсивным уровнем 3. Проблема в том, что он добавляет все 8 связанных моделей, но мне нужны данные только из трех моделей данных. Есть ли способ игнорировать некоторые модели или специально спросить некоторые модели, но не все. что-то вроде useModel ('Model1', 'Model2')?

1 Ответ

5 голосов
/ 23 ноября 2010

Лучше использовать поведение Containable , которое позволит вам указать такие условия поиска:

$this->Post->find('all', array(
    'contain' => array(
        'Tag', 
        'Comment' => array(
            'User')
            )
        )
    );

Кроме того, в сочетании с этим, хорошо установить $ recursive в -1 в вашей AppModel.

class AppModel extends Model {
    var $recursive = -1;
    var $actsAs = array('Containable');
}

Это обеспечит вам более точный контроль и гарантирует, что ваши запросы не будут раздуты, поскольку со временем к вашим моделям будет добавлено больше связей.

...