twig et jointure (left join)
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:
Code:
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(); |
Dans le controleur:
Code:
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
));
} |
Enfin dans la vue twig:
Code:
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 %} |
J'ai essayé plusieurs façons de récupérer le champ nomEntite sans succès.
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