Bonjour!
L'entité Personnes a une relation OneToMany avec l'entité intermédiaire FonctionsPersonnesEntités; celle-ci a une relation ManyToOne avec l'entité Entites.
Dans une vue j'affiche une liste de personnes: sur une des colonnes j'essaie d'afficher le libellé de l'entité correspondante.
Voici la méthode du repository:
Dans le controleur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public function findEquipe() { $qb = $this->createQueryBuilder('p') ->leftJoin('p.fonctionsPersonnesEntites', 'f')->addSelect('f') ->leftJoin('f.entite', 'e')->addSelect('e'); return $qb->getQuery()->getResult();
Enfin dans la vue twig:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public function detailPersonneListeAction() { $em = $this->getDoctrine()->getEntityManager(); $personnes = $em->getRepository('OseEffectifBundle:Personnes')->findEquipe(); return $this->render('OseEffectifBundle:Gestion:detailPersonneListe.html.twig', array( 'listePersonnes' => $personnes )); }
J'ai essayé plusieurs façons de récupérer le champ nomEntite sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 {% for personne in listePersonnes %} <tr> <td><a href="#">{{ personne.nomUsuel }}</a></td> <td>{{ personne.prenom }}</td> <td>{{ personne.fonctionsPersonnesEntites.entite.nomEntite }}</td> <td>{{ personne.createdAt|date('d/m/Y') }}</td> </tr> {% endfor %}
Voilà l'erreur actuelle:
Method "entite" for object "Doctrine\ORM\PersistentCollection" does not exist
Merci de vos lumières sur la façon de procéder
Partager