我是Laravel的新手,目前我正在开发一个非常基本的私人消息系统。
目前我正在尝试显示一个显示2个用户(已发送和已接收)之间的消息的页面,但是我只能显示用户已发送的消息。这是我的MessageController文件中的viewMessage函数。
MessageController.php
public function viewMessage($recipient_id){
$user = auth()->user()->id;
$messages = Message::where('sender_id', $user)->where('recipient_id', $recipient_id)->get();
return view ('pages.messages.view', compact('user', 'messages'));
}
查看Blade
<ul>
@foreach ($messages as $message)
<li>{{$message->body}}</li>
@endforeach
</ul>
从$ messages变量可以看出,我有一个查询构建器,它应该将发件人ID与当前登录用户的ID相匹配。它还应该将接收者ID与参数中的用户ID进行匹配,但是这当前不起作用。
我使用了dd()
,发件人ID和收件人ID都正确无误,所以我不知道为什么这不起作用。我假设我可能错误地使用查询构建器?
由于
答案 0 :(得分:1)
您只询问用户发送的邮件。您还需要获取用户收到的消息。
$user = auth()->user()->id;
$messages = Message::where('sender_id', $user)->where('recipient_id', $recipient_id)->get();
$receivedMessages= Message::where('sender_id', recipient_id)->where('recipient_id', $user)->get();