Hello,
Je rencontre actuellement un problème avec un many to many dans la création d'un formulaire avec Symfony.
Voici mes deux entités :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class Association extends EntityRepository { /** * Owning Side * * @ORM\ManyToMany(targetEntity="AppBundle\Entity\User", cascade={"persist"}, inversedBy="associations") * @ORM\JoinTable(name="association_user", * joinColumns={@ORM\JoinColumn(name="association_id", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")} * ) */ private $users;Maintenant, j'aimerais afficher dans un select d'un formulaire que les associations pour un utilisateur spécifique. Dans un autre controller, je fais déjà ça et si je regarde la requête que l'ORM me fait cela donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 /** * @ORM\Entity */ class User { /** * Inverse Side * * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Association", mappedBy="users") */ private $associations;
Pour le moment, j'en suis à quelque chose dans ce style :
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
17
18 SELECT t0.id AS id1, t0.date AS date2, t0.title AS title3, t0.description AS description4, t0.author AS author5, t0.published AS published6, t0.updated_at AS updated_at7, t0.president AS president8, t0.phone AS phone9, t0.email AS email10, t0.website AS website11, t0.image_id AS image_id12 FROM association t0 INNER JOIN association_user ON t0.id = association_user.association_id WHERE association_user.user_id = ?
Mais cela me donne une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $form = $this->get('form.factory')->createBuilder('form', $member) ->add('association', 'entity', array( 'class' => 'AppBundle:Association', 'query_builder' => function(EntityRepository $er) { return $er->createQueryBuilder('a,u') ->from('AppBundle:User', 'u') ->innerJoin('u.associations', 'ua') ->where('ua.id = :id')->setParameter('id', $this->getUser()->getId()); }, 'property' => 'title', ))Quelqu'un pourrait-il me donner un coup de main ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part [Semantical Error] line 0, col 47 near 'u, AppBundle:User': Error: Class 'u' is not defined.
Merci
Partager