Hier ist mein Code für die Nachrichtenübermittlung zu holen und ihnen die Gruppierung für jedeGroupBy nach orderBy für komplizierte Abfrage in Laravel
$query = DB::table('chats');
$otherUserId= $request->input('loadId');
if($otherUserId==0){
$query->join('users as u1', 'u1.id', '=', 'chats.user1_id');
$query->join('users as u2', 'u2.id', '=', 'chats.user2_id');
$query->join('messages', 'messages.chat_id', '=', 'chats.id');
$query->where('chats.user1_id', '=', '{$userId}');
$query->orWhere('chats.user2_id', '=', '{$userId}');
$query->select('messages.chat_id', 'messages.from_id', 'u1.id as user1_id', 'u2.id as user2_id', 'messages.created_at', 'messages.body', 'messages.read', 'u1.name as user1_name', 'u2.name as user2_name', 'u1.picture_url as user1_pic', 'u2.picture_url as user2_pic');
$query->orderBy('messages.created_at ', 'DESC');
$query->groupBy('chat_id');
$messages = $query->paginate(4);
Chat Wenn ich die Abfrage das Ergebnis laufen nicht wie erwartet SortiertNach von nach Gruppe kommt. Ich habe viel versucht, konnte aber keine Lösung finden. Ich habe diese Lösung auch ausprobiert, konnte aber nicht funktionieren. Order By before Group By using Eloquent (Laravel)
Bitte helfen Sie mir, ich habe eine Menge Zeit verloren, um es zu klären. Vielen Dank im Voraus für Ihre Hilfe.
Danke @Sam Dufel, ich wusste nicht, dass ** Gruppe von ** ist nicht legal nach ** Bestellung von **. Aber was ich tun muss ist, um 1 letzte Nachricht von jedem Chat zu bekommen (es gibt viele Nachrichten, die sich auf einen Chat beziehen), könnten Sie irgendeine Lösung dafür vorschlagen. Danke nochmal für deine Hilfe. – Logiclicker