Group By et Order by ID DESC
Bonjour,
J'ai crée un système de messagerie. Un membre peut envoyer un message privé à un autre membre.
Pour cela j'ai crée 2 tables
La table 'messagerie_sujets' qui contient les champs suivant :
- id
- sujet
- created_at
- updated_at
- user_id
Et une 2ème table 'messageries' qui contient les champs suivant :
- id
- id_expediteur
- id_destinataire
- sujet_id
- message
- validated
- lu
- created_at
- updated_at
Mon soucis vient de la réquête eloquent suivant :
$currentUserId = Auth::user()->id;
$threads=Messagerie::join('messagerie_sujets', 'messageries.sujet_id', '=', 'messagerie_sujets.id')
->where('messageries.id_destinataire',$currentUserId)
->where('messagerie_sujets.delete_by','NOT LIKE','%'.$currentUserId.'%')
->where('validated',1)
->groupBy('messageries.sujet_id')
->orderby('messageries.id','DESC')
->simplePaginate(10);
Ma requête actuel me groupe les messages par sujet et m'affiche le 1er message reçu dans une conversation.
Moi ce que je souhaiterais c'est que ma requête m'affiche le dernier message reçu dans une conversation qui elle doit être groupé par le sujet.
Pour être plus clair quand un membre va sur la page de ça boîte de récéption, je souhaiterai que ça lui affiche le le dernier message reçu d'un membres mais que cela soit groupé par le sujet
Example
Titre du sujet : Mon vélo 1er message : Regarde mon beau vélo 2ème message : J'ai oublié de joindre les photos.
Quand le 2eme membre va dans ça boîte de récéption il devrai voir le titre du sujet "Mon vélo" et le message "J'ai oublié de joindre les photos."
Alors que moi ma requête actuelle m'affiche titre du sujet "Mon vélo" et le 1ER MESSAGE "Regarde mon beau vélo".
Merci d'avance
Bonsoir,
Le groupBy sélectionne une ligne de chaque groupe et sert principalement aux fonctions d'agrégation. Donc appliquer un orderBy à la suite ne doit pas fonctionner...
Vous ne pouvez pas répondre à ce sujet.