为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Eloquent复杂查询从一张表中获取最新数据

Laravel Eloquent复杂查询从一张表中获取最新数据

PHP
蝴蝶不菲 2023-08-11 16:45:51
我正在用 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();


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信