Symfony 2 : [Semantical Error] The annotation « @ManyToMany » in property … was never imported.
Si jamais un jour, vous tentez de déclarer à la main une relation de type OneToOne, OneToMany ou ManyToMany et que vous avez une erreur de ce genre :
[Semantical Error] The annotation "@ManyToMany" in property MaSociete\PersoBundle\Entity\MaClasse::$proprietes was never imported. Did you maybe forget to add a "use" statement for this annotation?
Alors vous vous êtes sûrement aidé, comme moi, de la documentation officielle qui donne ces exemples, que je copie colle ici :
<?php /** @Entity **/ class User { // ... /** * @ManyToMany(targetEntity="Group", inversedBy="users") * @JoinTable(name="users_groups") **/ private $groups; public function __construct() { $this->groups = new \Doctrine\Common\Collections\ArrayCollection(); } // ... } /** @Entity **/ class Group { // ... /** * @ManyToMany(targetEntity="User", mappedBy="groups") **/ private $users; public function __construct() { $this->users = new \Doctrine\Common\Collections\ArrayCollection(); } // ... }
Si cela ne fonctionne pas et que vous avez cette erreur :
[Semantical Error] The annotation "@ManyToMany" in property MaSociete\PersoBundle\Entity\MaClasse::$proprietes was never imported. Did you maybe forget to add a "use" statement for this annotation?
Alors c’est qu’il suffit simplement d’ajouter le mot ORM\
.
Ainsi mon code qui ne fonctionnait pas :
<?php /** * @ManyToMany(targetEntity="Partenaire", inversedBy="personnes") * @JoinTable(name="personne_partenaire") **/ ?>
Et le code qui fonctionne :
<?php /** * @ORM\ManyToMany(targetEntity="Partenaire", inversedBy="personnes") * @ORM\JoinTable(name="personne_partenaire") **/ ?>
9 comments