Bonjour à tous,
Je viens à vous aujourd'hui concernant une problématique que je n'arrive pas à résoudre, et plus j'effectue de recherches, plus je nage dans le noir (oui oui c'est une expression^^).
Je vous expose ma problématique.
J'ai une table Users ainsi qu'une table Groups.
Je décide de lier Users à Groups par une association en liant l'id du groupe à l'utilisateur.
Ce qu'il faut savoir : un utilisateur n'est lié qu'à un seul groupe.
J'ai donc choisi ManyToOne, mais je pense que c'est faux. Voici les 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
13
14
15
16
17
18
19
20
21
22
23
24 /** * Users * * @ORM\Table() * @ORM\Entity(repositoryClass="DCL\UserBundle\Entity\UsersRepository") */ class Users implements UserInterface { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\ManyToOne(targetEntity="DCL\UserBundle\Entity\Groups") * @ORM\JoinColumn(name="groups_id", referencedColumnName="id", nullable=false) */ protected $groups; // reste de l'entitéMa première question est donc : Est-ce que ManyToOne est la bonne association ou dois-je me réorienter sur une autre ? Faudrait-il mettre aussi une association dans Groups ?
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32 /** * Groups * * @ORM\Table() * @ORM\Entity(repositoryClass="DCL\UserBundle\Entity\GroupsRepository") */ class Groups { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="groupname", type="string", length=255, nullable=true) */ private $groupname; /** * @var string * * @ORM\Column(name="grouplogo", type="string", length=255, nullable=true) */ private $grouplogo; //reste de l'entité
----
La deuxième problématique fait référence à un INSERT INTO.
Ce que je veut faire : l'utilisateur peut s'inscrire sur le site. Après avoir rempli le formulaire, on le crée dans la base de données.
Mais lors de cette création, il faut renseigner l'id du groupe auquel est rattaché l'utilisateur, qui est associé à l'entité Groups. A savoir que l'id du groupe que je veut choisir existe déjà dans l'entité Groups.
Voici ce que j'ai fait :
Mais quand je fait cela, Symfony va me créer un nouvel enregistrement dans Groups, ce que je ne veut pas bien évidemment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $user = new Users(); // /* SETS */ $groups = new Groups(); $groups->getId(1); $user->setUsername($p['username']); // ........ $user->setGroups($groups); // member group
Comment pourrais-je faire dans ce cas ?
---
Je vous remercie par avance de vos précisions et de vos éclaircissements car je sèche pas mal à ce niveau là.
Merci à tous,
Partager