我有一个User
实体类,用于身份验证提供程序:
/**
* @ORM\Entity(repositoryClass="Aurora\LikeBundle\Entity\UserRepository")
*/
class User implements AdvancedUserInterface
{
...
}
在UserRepository
我有自定义方法getServices()
。
在我的控制器中,我可以通过调用$this->container->get('security.context')->getToken()->getUser()
来访问当前用户 - 但它只返回没有存储库方法的用户对象(带有setter和getter)。
如何从安全上下文中访问这些内容?
答案 0 :(得分:4)
存储库与任何特定的Entity对象无关。它与整个Entity类有关。所以你有UserRepository for User实体,但$ user对象的UserRepository没有多大意义。
如果你想为某个实体(例如用户实体)获取存储库,你可以这样做:
$repository = $this->getDoctrine()->getRepository('AuroraLikeBundle:User');
并使用它:
$repository->getServices(); // or
$repository->getServices($userId);