Sto usando cakePHP versione 3.x.Associazioni multiple allo stesso modello in CakePHP 3
Quando interrogo il MessageTable, desidero ottenere i dati degli utenti per il mittente e il destinatario del messaggio. L'ho fatto molte volte in cakePHP 2 ma non riesco a capire perché non funziona nella versione 3.x.
Ho un UserTable e un MessagesTable.
UsersTable
$this->hasMany('Messages');
MessagesTable
$this->belongsTo('Users', [
'foreignKey' => 'sender_id',
'propertyName' => 'Sender',
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'propertyName' => 'Receiver'
]);
Questa è la query che sto usando
$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',
]);
sto ottenendo i dati del ricevitore di nuovo, ma non i dati del mittente pure. Qualsiasi aiuto sarebbe molto apprezzato
Grazie per la risposta @drmonkeyninja. Il tuo suggerimento è stata la prima cosa che ho provato ma mi ha dato un errore dicendo che Messaggi non è associato agli utenti anche se sono associati, il che mi fa pensare che stavo sbagliando in CakePHP 3, ecco perché l'ho cambiato. Qualche idea sul perché dà quell'errore? – Wisd0m
@ Wisd0m è il modello degli utenti in un plug-in? – drmonkeyninja
nessun modello degli utenti non è in un plug-in. E 'davvero strano che mi dia questo errore, potrebbe avere qualcosa a che fare con la relazione Users hasMany (' Messages ')? – Wisd0m