0

使い方はありますか

loadUserByUsername (セキュリティ設定に依存する UserProviderInterface 実装のメソッド)

サービスまたは他のクリーンな何かを介したコントローラーアクションから?

私は FOSUserBundle を使用しません

ありがとう !!

4

2 に答える 2

0

ネイティブの EntityUserProvider はabstractであるため、それは不可能です... ただし、メソッド loadUserByUsername を独自のパブリック サービスで定義し、EntityUserProvider から呼び出すと、任意の ContainerAware クラスから使用できます。

于 2012-05-09T12:18:47.240 に答える
0

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');
于 2012-05-09T18:53:56.363 に答える