Laravel 4

Group By et Order by ID DESC

Avatar de MSBIZ
MSBIZ

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

Posté il y a 4 ans
Avatar de bestmomo
bestmomo

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...

Posté il y a 4 ans

Vous ne pouvez pas répondre à ce sujet.