Bonjour je viens vers vous car je rencontre un problème d'une requête que j'essaie de mettre en place avec Doctrine pour récupérer l'index d'un forum en une requête.
Voici la requête en question :
Et voici ce qu'elle retourne : http://pastebin.com/65nWfp6W
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $this->categories = ForumCategoryTable::getInstance()->createQuery('c') ->select('c.*, f.*, lt.*, lp.*') ->addSelect('(SELECT COUNT(*) FROM ForumTopic ft WHERE ft.forum_id = f.id) f.nb_topics') ->addSelect('(SELECT COUNT(*) FROM ForumTopic ftt, ForumPost fp WHERE fp.topic_id = ftt.id AND ftt.forum_id = f.id) f.nb_posts') ->innerJoin('c.Forums f') ->leftJoin('f.LastTopic lt ON lt.id = (SELECT id FROM ForumTopic WHERE forum_id = f.id ORDER BY id DESC LIMIT 1)') ->leftJoin('lt.LastPost lp ON lp.id = (SELECT id FROM ForumPost WHERE topic_id = lt.id ORDER BY id DESC LIMIT 1)') ->execute();
Le problème se situe au niveau des nb_topics et nb_posts, puisqu'il apparaissent après hydratation au niveau de la racine du tableau retourné alors que je souhaite obtenir ces résultats au niveau de chaque forum.
Quand j'exécute la requête SQL générée par doctrine dans phpMyAdmin, le résultat se fait bien au niveau de chaque forum.
Ca fait plusieurs heures que je suis sur ce problème, et je n'arrive pas à trouver une solution.
D'avance, je vous remercie.
Partager