Моя модель имеетCakePHP 3: Получение глубоких ассоциаций
Conversations
- hasMany - Messages
Conversations
- hasMany - ConversationsRecipients
ConversationsRecipients
- belongTo - Users
или Applicants
(в зависимости от флага, установленного поля recipient_type
. Если recipient_type
A, то это означает, что заявители)
S О, когда я пытаюсь получить разговоры для конкретного заявителя, я использую следующий код
$conversationsTable = TableRegistry::get('Conversations');
$conversations = $conversationsTable->find()
->join([
'ConversationsRecipients' => [
'table' => 'conversations_recipients',
'type' => 'inner',
'conditions' => ['recipient_id' => $id, 'recipient_type' => 'A']
]
])
->contain([
'Messages.Users' => function ($q) {
return $q
->select(['Users.username'])
->contain(['UsersProfiles']);
},
'Messages.Applicants' => function($q) {
return $q
->select(['Applicants.firstname', 'Applicants.lastname']);
}
])
->all();
return $conversations;
Это прекрасно работает - для одной части, за исключением - но он не извлекает глубоко Содержится модели - UsersProfiles. Я что-то упускаю?