使い方はありますか
loadUserByUsername (セキュリティ設定に依存する UserProviderInterface 実装のメソッド)
サービスまたは他のクリーンな何かを介したコントローラーアクションから?
私は FOSUserBundle を使用しません
ありがとう !!
ネイティブの EntityUserProvider はabstractであるため、それは不可能です... ただし、メソッド loadUserByUsername を独自のパブリック サービスで定義し、EntityUserProvider から呼び出すと、任意の ContainerAware クラスから使用できます。
AFAIK Symfony2 は、登録されているユーザー プロバイダーに直接アクセスすることはできません。1つの汚い方法は、たとえばの方法で解析security.yml
することですload()
DependencyInjection/BundleExtension.php
//DependencyInjection/BundleExtension.php
public function load(array $configs, ContainerBuilder $container)
{
//...
//parse security.yml
//create an array mapping each provider keys in the firewall to the providers
//set the array as global parameter using $container->setParameter('provider.mappings', $array)
}
そして、コントローラーでできること
$mapping = $this->container->getParameter('provider.mappings');
$providerKey = $this->get('security.context')->getToken()->getProviderKey();
$user = $mapping[$providerKey]->loadUserByUsername('user_name');