Контейнерное поведение не возвращается из глубины 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');

хотя я изо всех сил пытаюсь найти пример из трех глубин в любом из моего кода.

Другие вопросы по тегам