Я использую cakePHP версии 3.x.Несколько ассоциаций к одной и той же модели в CakePHP 3
Когда я запрашиваю MessageTable, я хочу получить данные Пользователя для отправителя и получателя сообщения. Я делал это много раз в cakePHP 2, но я не могу понять, почему он не работает в версии 3.x.
У меня есть UserTable и MessageTable.
UsersTable
$this->hasMany('Messages');
MessagesTable
$this->belongsTo('Users', [
'foreignKey' => 'sender_id',
'propertyName' => 'Sender',
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'propertyName' => 'Receiver'
]);
Это запрос, я использую
$messages = $this->Messages->find()
->where(['Messages.user_id' => $this->Auth->user('id')])
->orwhere(['Messages.sender_id' => $this->Auth->user('id')])
->order(['Messages.created' => 'DESC'])
->contain([
'Users.Pictures',
]);
Я получаю данные приемника обратно, но не данные отправителя, а также. Любая помощь была бы действительно оценена
Спасибо за @drmonkeyninja ответ. Ваше предложение было первым, что я пробовал, но это дало мне сообщение о том, что сообщения не связаны с пользователями, хотя они связаны, что заставило меня поверить, что я делал это неправильно в cakePHP 3, поэтому я изменил его. Любые идеи относительно того, почему он дает эту ошибку? – Wisd0m
@ Wisd0m - ваша модель пользователей в плагине? – drmonkeyninja
Модель моих пользователей не находится в плагине. Действительно ли это странно, что он дал мне эту ошибку, может ли это иметь какое-то отношение к отношениям пользователей hasMany ('Messages')? – Wisd0m