Bonjour,
Je tourne en rond en essayant d'ajouter une relation entre les tables user(id, , country_id, username) et country(id,name) . J'ai lancé les différentes commandes après avoir soigneusement ajouté les annotations et constructeur.

User :

/**
* @ORM\ManyToOne(targetEntity="Country", inversedBy="users")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
*/

protected $country;


Country :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
   /**
     * @ORM\OneToMany(targetEntity="User", mappedBy="country")
     */
    protected $users;
 
 
    public function __construct()
    {
        $this->users = new ArrayCollection();
    }
J'ai ensuite lancé les commandes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
php app/console doctrine:generate:entities FrontBundle
php app/console doctrine:schema:update --force
En resultat le code ci-dessous a été généré

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
 
    /**
     * Set country
     *
     * @param toto\FrontBundle\Entity\Country $country
     */
    public function setCountry(\toto\FrontBundle\Entity\Country $country)
    {
        $this->country = $country;
    }
 
    /**
     * Get country
     *
     * @return toto\FrontBundle\Entity\Country 
     */
    public function getCountry()
    {
        return $this->country;
    }

Country :
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
    /**
     * Add users
     *
     * @param toto\FrontBundle\Entity\User $users
     */
    public function addUser(\toto\FrontBundle\Entity\User $users)
    {
        $this->users[] = $users;
    }
 
    /**
     * Get users
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getUsers()
    {
        return $this->users;
    }

Tout a l'air de bien fonctionner. Sauf que quand je lance la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
       $query = $em->createQuery(
            'SELECT u
             FROM totoFrontBundle:User u
                 JOIN u.Country c
                 WHERE u.id = :id
             '
        )->setParameters(array('id'=> 1));
        $user = $query->getResult();
J'ai systematiquement cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[Semantical Error] line 0, col 89 near 'c
': Error: Class xxx\xxx\Entity\User has no association named Country

Je vous remercie d'avance de votre aide.
Sibko1