我正在Laravel 中開發基本訊息功能,並希望顯示向當前登入用戶發送訊息的每個用戶以及最後收到的訊息,問題是「orderByDesc」無法正常工作它顯示第一則訊息而不是最後一條。
這是我寫的查詢:
$receivedmessages = DB::table('messages') ->join('users', 'users.id', '=', 'messages.sender_id') ->select('messages.*', 'users.username') ->where('receiver_id', Auth::user()->id) ->orderByDesc('messages.created_at') ->groupBy('receiver_id') ->get();
知道如何解決這個問題嗎? 謝謝
刪除
->where('receiver_id', Auth::user()->id)
此條件以取得每個使用者的結果,而不是您登入時所使用的結果實現上述目標的技巧是從表格中取得最大 Id 並在
WHERE IN
條件中使用這些 Id