Bonjour,
Bon j'avais écrit un pavé, avant de voir que ton problème c'est juste de récupérer le dernier commentaire, pas de récupérer le dernier commentaire en même temps que le sujet. Je le laisse au cas ou en dessous.
Tu te compliques grandement la vie, une simple requête du type :
Du coup dans ton modèle commentaire, tu peux faire un scope :
Et tu peux l'appeler directement :
Ou si tu retires le limit(1)
(Ici c'était le pavé)
Alors tu as plusieurs choix :
1) tu peux faire comme tu as fait, cad avec le query builder :
Attention, à ce moment il faut que tu saches que si certains sujets n'ont pas de dernier commentaire, la requête ne fonctionnera pas.
Si tu veux qu'elle renvoie NULL comme dernier commentaire s'il n'existe pas, tu dois faire un leftJoin.
Et aussi, je te conseille de faire un scope pour récupérer le dernier commentaire dans ta requête plus facilement sans devoir refaire à chaque fois la requête.
Avantages :
- Tu ne fais qu'une requête.
Inconvénients : - Tu fais une requête plus compliquée (beaucoup).
2) tu peux aussi faire une relation de type hasOne (dans sujet) :
et récupérer via $sujet->dernier_commentaire
Avantages :
- Beaucoup plus simple.
Inconvénients : - Deux requêtes.