IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

twig et jointure (left join) [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 13
    Points : 17
    Points
    17
    Par défaut 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 : 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();
    Dans le controleur:
    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
                        ));
        }
    Enfin dans la vue twig:
    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 %}
    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

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 13
    Points : 17
    Points
    17
    Par défaut Euréka!
    je suis parvenu au résultat en démarrant par l'entité intermédiaire....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <tr>
                        <td><a href="#">{{ ent.personne.nomUsuel }}</a></td>
                        <td>{{ ent.personne.prenom }}</td>
                        <td>{{ ent.entite.nomEntite }}</td>
                        <td>{{ ent.personne.createdAt|date('d/m/Y') }}</td>
                        <td><a href="#">Consulter</a></td>
                        <td><a href="#">Modifier</a></td>
                        <td><a href="{{ path('supprimer_personne', {'id': ent.personne.id} ) }}">Supprimer</a></td>
                    </tr>
    Bon courage à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Jointure LEFT JOIN avec Double COUNT
    Par Mike91 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/03/2015, 13h37
  2. Réponses: 1
    Dernier message: 06/11/2008, 10h51
  3. [MySQL] jointure LEFT JOIN
    Par Vinuto dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/09/2008, 20h49
  4. Réponses: 6
    Dernier message: 23/01/2007, 11h17
  5. [LEFT JOIN] Condition de jointure bizzare
    Par Celelibi dans le forum Requêtes
    Réponses: 7
    Dernier message: 17/05/2005, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo