Я хочу получить данные с рекурсивным уровнем 3. Проблема в том, что он добавляет все 8 связанных моделей, но мне нужны данные только из трех моделей данных. Есть ли способ игнорировать некоторые модели или конкретно задавать некоторые модели, но не все. что-то вроде useModel ('Model1', 'Model2')?CakePHP: Как указать модели при извлечении данных?
0
A
ответ
5
Это лучше использовать Containable поведение, которое позволит вам указать найти условия, как это:
$this->Post->find('all', array(
'contain' => array(
'Tag',
'Comment' => array(
'User')
)
)
);
Кроме того, в связи с этим, это хорошо, чтобы установить $ рекурсивной до -1 в вашем AppModel.
class AppModel extends Model {
var $recursive = -1;
var $actsAs = array('Containable');
}
Это даст вам контроль тоньше вам нужно, и убедитесь, что ваши запросы не раздувают как больше отношений добавляются к моделям с течением времени.
Быстрая подсказка: искать unbind в руководстве – c0rnh0li0 2010-11-23 00:32:51
Связывать или отвязывать только работает, когда это первый уровень рекурсивный. – Sharj 2010-11-23 02:37:26