Контейнерное поведение не возвращается из глубины 3 - CakePHP
Я использую CakePHP 1.2.6 и имею следующие отношения:
Витрина HABTM Пользователь принадлежит Galleryitem hasOne Image
Я пытаюсь получить все данные, относящиеся к витрине, а также для всех ее пользователей с их Galleryitem -> Image. Я использую следующий запрос:
$showcase = $this->Showcase->find('first',
array('conditions'=>array('Showcase.id'=>$id),
'contain'=> array(
'User' => array(
'Galleryitem' => array(
'Image'
)
)
)
)
);
Это возвращает и пустой массив Galleryitem
и, таким образом, нет Image
записи вообще. Если я попробую следующее:
$showcase = $this->Showcase->User->find('first',
array(
'contain'=> array(
'Galleryitem' => array(
'Image'
)
)
)
);
Я получаю некоторые данные здесь о Image
, Кажется, здесь играет роль глубина.
Другие факторы, которые пришли на ум, были belongsTo
связь между User
а также Galleryitem
,
Что заставляет мой запрос не возвращать данные с глубины 3?
Обновление Набор отношений Showcase в моем проекте гораздо более разветвлен, чем я объяснял выше. Все остальные ветви правильно отображаются. Так что я думаю, что это связано с конкретными отношениями в этой отрасли, User belongsTo Galleryitem
,
Еще странно, потому что другие ветви содержат этот же набор Galleryitem hasOne Image
связь.
1 ответ
Я обычно использую точечный синтаксис (который я не вижу в книге):
$this->Showcase->contain('User','User.GalleryItem','User.GalleryItem.Image');
$showcase = $this->Showcase->User->find('first');
хотя я изо всех сил пытаюсь найти пример из трех глубин в любом из моего кода.