Я имею следующие таблицы, Вопросы, Пользователи, Причины и Изображения. В основном Вопросы имеют множество Причины , и моя цель - отобразить образ прикрепления «Причины», а также автора сообщения (пользователи).
CakePHP-3.0 несколько belongsTo ассоциации
1. Users table associated with Reasons
2. Both Users and Reasons are associated with Images table (foreign key 'image_id').
Он работает в запросе находят при связывании
'Reasons.Images' or 'Reasons.Users.Images'
но не оба! Это мой код, который возвращается только для «Причины».
$this->Issues->findById($id)->contain([
'Reasons.Images',
'Reasons.Users.Images'
]);
Итак, как я получаю ассоциацию изображений обеих таблиц или должен ли мой подход быть другим?
На самом деле я не получаю ваш ответ и как это решает что угодно. Почему в вашей проблеме есть аргумент 'reason_id', когда это должно быть ассоциацией' Issue hasMany Reason'? Также порядок тот же, что и в вашем вопросе, вы только что добавили еще одну оболочку (соответственно конфигурацию сдерживания)? Кроме того, поиск в вашем вопросе отлично подходит для меня, как есть, результат будет содержать причины с их ассоциированным изображением и пользователем, где пользователи также имеют свой образ. – ndm
@ndm: Может быть, мой способ объяснить вам неясен. Я должен был выслать свои ошибочные ответы раньше. Но в основном, для поиска, что я допросил ... Я не получил «Картинки», когда получил «Users.Images» ... И это часть моей основной ассоциации, в которой я работаю. Поэтому, когда я понял правильный способ использования ассоциаций (как я уже упоминал в своем ответе), я смог получить данные, как ожидалось. Поэтому я только что опубликовал свой ответ. –