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 :
J'ai ensuite lancé les commandes :
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(); }
En resultat le code ci-dessous a été généré
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
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 :
J'ai systematiquement cette erreur :
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();
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
Partager