Bonjour à tous et merci d'avance pour votre aide,
J'essaye de mettre en place une relation OneToMany/ManyToOne avec Doctrine2 (& Symfony2) mais impossible d'y parvenir !
Voici mes deux classes : User (qui étant FOSUser) et Collection qui représente une collection de vidéos. Un utilisateur pour avoir plusieurs collections, mais une collection n'appartient qu'à un seul utilisateur.
And user,
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 /* COLLECTION */ namespace Com\ComBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; /** * Com\ComBundle\Entity\Collection * * @ORM\Table(name="collection") * @ORM\HasLifecycleCallbacks */ class Collection { /** * @var integer $id * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\ManyToOne(targetEntity="Com\UserBundle\Entity\User", inversedBy="collections") * @ORM\JoinColumn(nullable=false) */ private $user; /** * Set user * * @param Com\UserBundle\Entity\User $user * @return Collection */ public function setUser(\Com\UserBundle\Entity\User $user) { $this->user = $user; return $this; } /** * Get user * * @return Com\UserBundle\Entity\User User */ public function getUser() { return $this->user; } }
Quand j'utilise la commande doctrine:generate:entities sur la classe User, elle ne génère par les méthodes relatives à $collection (get/add/remove), et même si je les écris moi-même, elles ne fonctionnent pas : getCollections() { return $this->collections; } renvoie NULL par exemple.
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
33 /* USER */ namespace Com\UserBundle\Entity; use FOS\UserBundle\Entity\User as BaseUser; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Entity * @ORM\Table(name="user") */ class User extends BaseUser { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /* * @ORM\OneToMany(targetEntity="Com\ComBundle\Entity\Collection", mappedBy="user") */ private $collections; public function __construct() { parent::__construct(); $this->collections = \Doctrine\Common\Collections\ArrayCollection(); } }
Qu'est-ce qui cloche dans ce code ?
Merci pour l'aide !!![]()
Partager