Bonjour à tous.
J'ai suivi les deux tutoriels d'introduction à symfony 2 proposés par djayp et je dois dire qu'ils m'ont vraiment beaucoup aidé. Je tiens à le remercier encore une fois pour ça.
Je suis débutant en php et maintenant que j'essaie de faire les choses par moi même il y a tout de suite plus de problèmes...
J'utilise le bundle FOSUserBundle de la même manière que dans le tutoriel. J'ai aussi un Bundle nommé NetworkBundle dans lequel j'ai créé une entité Message.php.
Chaque message appartient à un utilisateur et j'ai donc créé une relation OnetoMany. Je vous met le code de mes deux entités:
User.php :
et Message.php :
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 <?php namespace MyApp\UtilisateurBundle\Entity; use FOS\UserBundle\Entity\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="fos_user") */ class User extends BaseUser { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\generatedValue(strategy="AUTO") */ protected $id; /** * @ORM\OneToMany(targetEntity="NetworkBundle\Entity\Message", mappedBy="user") * @ORM\OrderBy({"createdAt" = "DESC"}) * * @var ArrayCollection $message */ protected $message; public function __construct() { parent::__construct(); } /** * Get id * * @return integer $id */ public function getId() { return $this->id; } /** * Add message * * @param NetworkBundle\Entity\Message $message */ public function addMessage(\NetworkBundle\Entity\Message $message) { $this->message[] = $message; } /** * Get message * * @return Doctrine\Common\Collections\Collection $message */ public function getMessage() { return $this->message; } }
C'est deux fichier sont les fichiers que j'obtiens après avoir utilisé la commande :
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 <?php namespace MyApp\NetworkBundle\Entity; use FOS\UserBundle\Entity\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="message") */ class Message { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(type="text") */ protected $message; /** * @ORM\Column(type="datetime", name="created_at") * * @var DateTime $createdAt */ protected $createdAt; /** * @ORM\ManyToOne(targetEntity="UtilisateurBundle\Entity\User", inversedBy="message") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") * * @var User $user */ protected $user; /** * Get id * * @return integer $id */ public function getId() { return $this->id; } /** * Set message * * @param text $message */ public function setMessage($message) { $this->message = $message; } /** * Get message * * @return text $message */ public function getMessage() { return $this->message; } /** * Set createdAt * * @param datetime $createdAt */ public function setCreatedAt($createdAt) { $this->createdAt = $createdAt; } /** * Get createdAt * * @return datetime $createdAt */ public function getCreatedAt() { return $this->createdAt; } /** * Set user * * @param UtilisateurBundle\Entity\User $user */ public function setUser(\UtilisateurBundle\Entity\User $user) { $this->user = $user; } /** * Get user * * @return UtilisateurBundle\Entity\User $user */ public function getUser() { return $this->user; } }
Ensuite quand je passe la commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part php app/console doctrine:generate:entities MyApp
J'obtiens une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part php app/console doctrine:schema:update --force
Je n'arrive pas à interpréter cette erreur. Il y a peut-être une erreur de mapping mais dans mon fichier config.ylm j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [ErrorException] Warning: class_parents(): Class UtilisateurBundle\Entity\User does not exist and could not be loaded in /miniprojet/vendor/doctrine/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php line 222
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5doctrine: orm: auto_generate_proxy_classes: %kernel.debug% auto_mapping: true
ce qui semble être la configuration normale. Je suis sur la béta 4 de symfony 2. Pouvez vous m'aider à interpréter et résoudre cette erreur?
Cordialement
Edit: J'ai oublié de préciser que les deux commandes fonctionnent quand les entités sont dans le même bundle.
Partager