有没有办法使用
loadUserByUsername(取决于安全配置的UserProviderInterface实现方法)
从控制器操作通过服务或其他东西清理?
我不使用FOSUserBundle
谢谢!
答案 0 :(得分:0)
由于本机EntityUserProvider是抽象,所以不可能......但是,如果您在自己的公共服务中定义方法loadUserByUsername并从EntityUserProvider调用它,则可以从任何ContainerAware类中使用它。
答案 1 :(得分:0)
AFAIK Symfony2无法直接访问已注册的用户提供商。一种肮脏的方式是,在security.yml
的{{1}}方法中解析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)
}