Ich verwende CakePHP Version 3.x.Mehrere Zuordnungen zum gleichen Modell in CakePHP 3
Wenn ich die NachrichtenTabelle abfrage, möchte ich die Benutzerdaten für den Absender und den Empfänger der Nachricht erhalten. Ich habe dies viele Male in CakePHP 2 getan, aber ich kann nicht herausfinden, warum es in Version 3.x nicht funktioniert.
Ich habe eine UsersTable und eine MessageSable.
UsersTable
$this->hasMany('Messages');
MessagesTable
$this->belongsTo('Users', [
'foreignKey' => 'sender_id',
'propertyName' => 'Sender',
]);
$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'propertyName' => 'Receiver'
]);
Dies ist die Abfrage ich verwende
$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',
]);
Ich bin der Empfänger Daten zurück bekommen, aber nicht die Sender als auch Daten. Jede Hilfe würde wirklich geschätzt werden
Sie für die Antwort @drmonkeyninja danken. Ihr Vorschlag war das erste, was ich ausprobiert habe, aber das gab mir eine Fehlermeldung, dass Nachrichten nicht mit Benutzern verknüpft sind, obwohl sie mir zugeordnet sind, was mich zu der Annahme verleitete, dass ich es in CakePHP 3 falsch gemacht habe. Irgendwelche Ideen, warum es diesen Fehler gibt? – Wisd0m
@ Wisd0m ist Ihr Benutzermodell in einem Plugin? – drmonkeyninja
Nein mein Benutzermodell ist nicht in einem Plugin. Es ist wirklich seltsam, dass es mir diesen Fehler gibt, könnte es etwas mit der Beziehung "Benutzer hat viele (Nachrichten)" zu tun haben? – Wisd0m