Régler l’erreur ‘Unknown Entity namespace alias […]. 500 Internal Server Error – ORMException’ [Symfony2]

J’ai passé pas mal de temps sur cette erreur. Je me trouvais dans le controller profileController surcharge du FOSUserBundle. Je souhaitais pouvoir récupérer un utilisateur autre que celui qui est connecté grâce à un paramètre d’id.

Par défaut j’ai utilisé :

//dans mon action
$repositoryUser = $this->getDoctrine()
            ->getEntityManager()
            ->getRepository('MonsiteUserBundle:User');

$user = $repositoryUser->findOneById($id);

Et finalement, j’avais l’erreur Unknown Entity namespace alias […]. 500 Internal Server Error – ORMException’ .

La solution était de ne pas indiquer le namespace global du projet, comme ci-dessous.

//dans mon action
$repositoryUser = $this->getDoctrine()
            ->getEntityManager()
            ->getRepository('UserBundle:User');

$user = $repositoryUser->findOneById($id);

Je ne sais pas pourquoi tout agit comme ça, mais en cas ça a résolu mon problème, si quelqu’un à l’explication du pourquoi du comment, je suis preneur.

note : pour utiliser GetDoctrine dans un controller de FOSUserBundle