Bonjour

J'ai 2 tables A et B.
Actuellement, je fais une requete du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
SELECT A.*, COUNT(B.ID)
FROM A
LEFT JOIN B ON...
GROUP BY A.*
ORDER BY A.ID DESC
Je voudrais ajouter une nouvelle récupération de données qui me permettrait d'avoir en outre la liste des element de B associé a chaque element de A.

Typiquement, je fais objetA.getB()
La methode est dans mon entité, pas de problème.

Sauf que je voudrais que ces élémentss soient ordonnés par date décroisssante.

J'ai envisagé plusieurs solutions :

La première :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
SELECT A.*, B.*, COUNT(B2.ID)
FROM A
LEFT JOIN B ON...
LEFT JOIN B2 ON...
GROUP BY A.*, B.*
ORDER BY A.ID DESC, B.created_at ASC
Ca me supprime des éléments, je ne sais pas trop pourquoi. Mais ca me parait un peu bancal comme requete SQL.

La seconde méthode consiste a crééer une metgode getB dans un repository, a crééer le code doctrine pour faire un query builder et à appeller cette méthode dans le controlleur... assez fastidieux.

La méthode que j'envisage serait d'ajouter dans mon entité une méthode :
getBOrderByCreatedAt()

Que je pourrais appeller directement depuis TWIG je pense.

Est ce que c'est faisable ?
Est ce que ca vous parait la bonne solution, ou est ce que je peux faire plus simple d'une manière ou d'ue autre ?

Merci,
Pierre