2

User認証プロバイダーに使用されるエンティティクラスがあります。

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

私にはUserRepositoryカスタムメソッドがありgetServices()ます。私のコントローラーでは、を呼び出すことで現在のユーザーにアクセスできますが、$this->container->get('security.context')->getToken()->getUser()リポジトリメソッドのないユーザーオブジェクト(セッターとゲッターを含む)のみが返されます。

セキュリティコンテキストからそれらにアクセスするにはどうすればよいですか?

4

1 に答える 1

4

リポジトリは、特定のエンティティオブジェクトとは関係ありません。エンティティクラス全体に関連しています。したがって、UserエンティティのUserRepositoryがありますが、$userオブジェクトのUserRepositoryはあまり意味がありません。

一部のエンティティ(ユーザーエンティティなど)のリポジトリを取得する場合は、次のように実行できます。

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

そしてそれを使用するだけです:

$repository->getServices(); // or
$repository->getServices($userId);
于 2012-09-07T10:32:54.210 に答える