Hallo Community
Ich möchte eine Abfrage über eine Nachrichtentabelle machen.
Das Resultat sollte fogendermassen aussehen:
Zeige alle Nachrichten an mich gesendet von einem bestimmten User UND von mir gesendet an einen bestimmten User.
Ich hab aber folgende Probleme:
Wenn ich eine Nachricht aufrufe, wo ich Empfänger bin, bekomme ich alle Nachrichten, wo ich Empfänger bin, aber nicht wo ich geschickt habe.
Wenn ich eine Nachricht anrufe, wo ich Absender bin, bekomme ich nur genau diese eine Nachricht, aber nicht wo ich Empfänger bin.
Hier ist der Code (Laravel):
<code>
$message = Message::find($id);
echo 'ad id: '.$ad_id = $message->ad_id.'<br>';
echo 'me:'.$me = Auth::id().'<br>';
echo 'sender:',$sender = $message->sender_id.'<br>';
echo 'recipient:'.$recipient = $message->recipient_id.'<br>';
$messages = Message:rderBy('id', 'desc')
// Message to me
->Where(function ($q1) use ($ad_id, $me, $sender, $recipient) {
$q1->Where('ad_id', $ad_id)
->Where('recipient_id', $me)
->Where('sender_id', $sender);
})
// Message from me
->orWhere(function ($q2) use ($ad_id, $me, $sender, $recipient) {
$q2->Where('ad_id', $ad_id)
->Where('recipient_id', $recipient)
->Where('sender_id', $me);
})
->get();
return view ('messages.show', compact('message'), compact('messages'));
</code>
Wo hab ich mein Denkfehler ?
Gruss, Traw
Ich möchte eine Abfrage über eine Nachrichtentabelle machen.
Das Resultat sollte fogendermassen aussehen:
Zeige alle Nachrichten an mich gesendet von einem bestimmten User UND von mir gesendet an einen bestimmten User.
Ich hab aber folgende Probleme:
Wenn ich eine Nachricht aufrufe, wo ich Empfänger bin, bekomme ich alle Nachrichten, wo ich Empfänger bin, aber nicht wo ich geschickt habe.
Wenn ich eine Nachricht anrufe, wo ich Absender bin, bekomme ich nur genau diese eine Nachricht, aber nicht wo ich Empfänger bin.
Hier ist der Code (Laravel):
<code>
$message = Message::find($id);
echo 'ad id: '.$ad_id = $message->ad_id.'<br>';
echo 'me:'.$me = Auth::id().'<br>';
echo 'sender:',$sender = $message->sender_id.'<br>';
echo 'recipient:'.$recipient = $message->recipient_id.'<br>';
$messages = Message:rderBy('id', 'desc')
// Message to me
->Where(function ($q1) use ($ad_id, $me, $sender, $recipient) {
$q1->Where('ad_id', $ad_id)
->Where('recipient_id', $me)
->Where('sender_id', $sender);
})
// Message from me
->orWhere(function ($q2) use ($ad_id, $me, $sender, $recipient) {
$q2->Where('ad_id', $ad_id)
->Where('recipient_id', $recipient)
->Where('sender_id', $me);
})
->get();
return view ('messages.show', compact('message'), compact('messages'));
</code>
Wo hab ich mein Denkfehler ?
Gruss, Traw