Symfony2从安全令牌访问用户实体自定义存储库

时间:2012-09-07 10:13:15

标签: php symfony doctrine-orm

我有一个User实体类,用于身份验证提供程序:

/**
 * @ORM\Entity(repositoryClass="Aurora\LikeBundle\Entity\UserRepository")
 */
class User implements AdvancedUserInterface
{
    ...
}

UserRepository我有自定义方法getServices()。 在我的控制器中,我可以通过调用$this->container->get('security.context')->getToken()->getUser()来访问当前用户 - 但它只返回没有存储库方法的用户对象(带有setter和getter)。

如何从安全上下文中访问这些内容?

1 个答案:

答案 0 :(得分:4)

存储库与任何特定的Entity对象无关。它与整个Entity类有关。所以你有UserRepository for User实体,但$ user对象的UserRepository没有多大意义。

如果你想为某个实体(例如用户实体)获取存储库,你可以这样做:

$repository = $this->getDoctrine()->getRepository('AuroraLikeBundle:User');

并使用它:

$repository->getServices(); // or
$repository->getServices($userId);