Используйте сдерживаемое поведение.У меня тоже было несколько вопросов по этому поводу в последнее время.Было бы гораздо эффективнее установить рекурсивное значение 4, поскольку вы будете включать только те модели, которые вам нужны.
Следуйте этим инструкциям, чтобы настроить поведение на своих моделях.http://book.cakephp.org/view/1323/Containable
Затем вы сможете выполнить поиск и получить желаемую структуру.
$this->Project->find(
'all',
array(
'conditions' => array(
//put your conditions in here
),
'contain' => array(
'User',
'Screenshot',
'Screenshot.SubScreenshot'
'Scrrenshot.SubScreenshot.User'
)
);
Существует несколько способов использования синтаксиса модели.Вы можете добавить массивы в содержащиеся модели, чтобы добавить условия и / или дополнительную глубину.