Symfony2 – Doctrine e FOSUserBundle – annotations erradas

Eu sou novo no Symfony2 em geral. Esta questão diz respeito à Doctrine e ao FOSUserBundle.

Eu tenho a seguinte Entidade User.php criada com base em FOSUserBundle e uma auto-referência muitos para muitos.

hasAccessTo = new \Doctrine\Common\Collections\ArrayCollection(); $this->hasAccessToMe = new \Doctrine\Common\Collections\ArrayCollection(); } } 

Dá-me o seguinte erro ao tentar atualizar o cache ou soltar:

 [Doctrine\Common\Annotations\AnnotationException] [Semantical Error] The annotation "@ManyToMany" in property Pan100\MoodLog Bundle\Entity\User::$hasAccessTo was never imported. Did you maybe forget to add a "use" statement for this annotation? 

O que há de errado aqui? E o que é uma “declaração de uso”?

Você esqueceu de adicionar o prefixo @ORM\ em suas annotations:

 /** * @ManyToMany(targetEntity="User", mappedBy="hasAccessToMe") **/ 

deveria estar

 /** * @ORM\ManyToMany(targetEntity="User", mappedBy="hasAccessToMe") **/ 

Você também pode importar cada anotação individualmente – da maneira que eu prefiro:

 use Doctrine\ORM\Mapping\Entity; use Doctrine\ORM\Mapping\ManyToMany; // ... /** * @Entity */ class User { /** * @ManyToMany(targetEntity="Thing") */ private $things; // ... }