Je développe une fonctionnalité de messagerie de base dans Laravel et souhaite afficher tous les utilisateurs qui ont envoyé un message à l'utilisateur actuellement connecté ainsi que le dernier message reçu. Le problème est que "orderByDesc" ne fonctionne pas correctement, il affiche le premier message au lieu du le dernier.
Voici la requête que j'ai écrite :
$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();
Une idée sur la façon de résoudre ce problème ? Merci
Supprimez
->where('receiver_id', Auth::user()->id)
cette condition pour obtenir des résultats pour chaque utilisateur au lieu de celui avec lequel vous vous êtes connectéL'astuce pour réaliser ce qui précède est d'obtenir le maximum d'identifiants du tableau et d'utiliser ces identifiants dans la
WHERE IN
condition