Bonjour,
j'essai de créer des relaltion many-to-many-bidirectional dans un projet symfony2.
en suivant les instructions données par doctrine2 (lien) j'arrive bien à créer une relation qui permet l'accès dans un sens comme dans l'autre. En revanche quand je veux administrer la base (par exemple avec le CRUD par défaut), j'ai d'un coté l'accès à une liste de choix multiple et de l'autre coté rien.
Par exemple si je prends 2 tables "Users" et "Discussion", en effectuant le CRUD sur "Discussion" je vois l'ensemble des utilisateurs qui ont participé à la discussion et je peux les sélectionner. En revanche en faisant le CRUD sur "Users" je ne peux pas sélectionner les discussions auquel il a participé.
j'ai résolu le problème en changeant le paramétrage par annotations donné par la doc doctrine :
en :
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 //dans l'entity Discussion: /** * @var Users * @ORM\ManyToMany(targetEntity="User", inversedBy="discussions") * @JoinTable(name="users_discussions") */ private $users; //dans l'entity User: /** * @var Discussions * @ORM\ManyToMany(targetEntity="Discussion", mappedBy="users") */ private $discussions;
ca fonctionne bien pour le CRUD mais ca crée une erreur si je veux générer le schéma (et en plus je pense que ca n'est pas très propre...)
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 //dans l'entity Discussion: /** * @var Users * @ORM\ManyToMany(targetEntity="User", inversedBy="discussions") * @JoinTable(name="users_discussions") */ private $users; //dans l'entity User: /** * @var Discussions * @ORM\ManyToMany(targetEntity="Discussion", inversedBy="users") * @JoinTable(name="users_discussions") */ private $discussions;
quelqu'un aurait-il une solution ??
Partager