Używam CakePHP w wersji 3.x.Wiele skojarzeń z tym samym modelem w CakePHP 3
Kiedy wysyłam zapytanie do MessagesTable, chcę uzyskać dane użytkowników dla nadawcy i odbiorcy wiadomości. Robiłem to wiele razy w CakePHP 2, ale nie mogę zrozumieć, dlaczego nie działa w wersji 3.x.
Mam Tabela UsersTable i MessagesTable.
UsersTable
$this->hasMany('Messages');
MessagesTable
$this->belongsTo('Users', [
'foreignKey' => 'sender_id',
'propertyName' => 'Sender',
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'propertyName' => 'Receiver'
]);
To zapytanie używam
$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',
]);
jestem coraz danych słuchawkę, ale nie dane nadawcy, jak również. Każda pomoc będzie naprawdę doceniana.
Dziękuję za @drmonkeyninja odpowiedzi. Twoja sugestia była pierwszą rzeczą, której próbowałem, ale spowodowało to błąd informujący, że wiadomości nie są powiązane z użytkownikami, mimo że są powiązane, co prowadzi mnie do przekonania, że robiłem to źle w CakePHP 3, dlatego to zmieniłem. Jakieś pomysły na to, dlaczego podaje ten błąd? – Wisd0m
@ Wisd0m to model użytkowników w wtyczce? – drmonkeyninja
Brak mojego modelu Użytkownicy nie ma wtyczki. Czy to naprawdę dziwne, że to, że daje mi ten błąd, może mieć coś wspólnego z użytkownikami ma wiele relacji ("wiadomości")? – Wisd0m