Bonjour à tous!
Je me mets au jointures Doctrine 2 et j'ai quelques problèmes...
Voici mon schéma :
J'ai une table "event" qui comprend une relation OneToMany (et non ManyToOne) avec une table "comments" qui a une relation ManyToOne avec une table "user" qui a une relation OneToOne avec la table "infos_user".
J'aimerai récupérer toutes ces infos dans une requête afin d'éviter de faire d'autres requête lors de l'affichage des infos sur la page "Event.html.twig" comme ceci :
Pour ça j'ai essayé dans le Repository :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 {{ for comment in events.comments }} {{ comment.user.infos.name }} à commenté : {{ comment.text }} <br /> {{ endfor }}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public function getOneByProd($id, $titre) { return $this->createQueryBuilder('e') ->join('e.comments', 'c') ->join('c.user', 'u') ->join('u.infos', 'i') ->addSelect('c') ->addSelect('u') ->addSelect('i') ->where('e.user = :id AND e.titreurl = :titre') ->setParameter('id', $id) ->setParameter('titre', $titre) ->getQuery() ->getOneOrNullResult(); }
mais ce code plante lorsque le nombre de commentaires est égal à 0, donc il marche uniquement sur les pages qui ont déjà un commentaire... bref je pense que je ne fais pas du tout ce qu'il faut donc si qqn peut m'aiguiller...
Dans la doc de Doctrine il ne parle pas de faire plusieurs jointure ? je suis certainement sur une mauvaise piste... bref j'ai besoin d'aide :-°
Partager