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 :

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;
    }
}
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
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;
    }
}
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
php app/console doctrine:generate:entities MyApp
Ensuite quand je passe la commande

Code : Sélectionner tout - Visualiser dans une fenêtre à part
php app/console doctrine:schema:update --force
J'obtiens une erreur:

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
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
3
4
5
 
doctrine:
    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.