我正在用 laravel 创建实时聊天系统。我想从数据库获取最新消息。我想从雄辩中得到这样的查询。$senderLastMessage = Message::where('sender_id',$user->id)->where('receiver_id',auth()->user()->id)->latest('created_at')->first();
$receiverLastMessage = Message::where('receiver_id',$user->id)->where('sender_id',auth()->user()->id)->latest('created_at')->first();现在我想要最新的消息,在这种情况下,最新的消息将从 auth->user 或其他用户发送。我怎样才能得到这个?如果我单独得到这些。我将必须创建日期比较,例如检查 senderLastMessage->created_at 的日期是否更大或receiverLastMessage->created_at 是否更大,或者如果它们相等,则获取时间并检查谁的时间更大,然后显示该消息实例。我怎样才能从雄辩中得到这个?
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
只需在查询中使用 OR 条件和一些括号
$lastMessage = Message::where( fuunction($query) use($user) {
$query->where('sender_id',$user->id)
->orWhere('receiver_id', $user->id);
})->where( function($query) {
$query->where('sender_id',auth()->id())
->orWhere('receiver_id', auth()->id());
})->latest('created_at')->first();
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消