我如何获得用户提供商? - Symfony2

时间:2013-08-01 13:36:19

标签: php symfony

我正在尝试扩展一个类,我需要的只是UserProvider。

我认为传递'@ security.context'服务并执行下面的代码会这样做但它不起作用(它只是说$ security_context不是对象);

// $security_context holds the passed in $security_context service

$security_context->getToken()->getUser(); // doesn't work

如果这有所不同,我正在使用FOSUserBundle。

当我将其传递给__construct时,可能还没有创建用户,但我不确定发生了什么。

那么如何获得此用户提供商?是否有security.user_provider服务?

该脚本允许一组用户提供者,但我只需要一个。

-

完整配置:

services.yml:

  security.authentication.rememberme.services.simplehash: #override/extend this class
    class: Acme\MyBundle\ExtendRememberMe
    parent: security.authentication.rememberme.services.abstract
    abstract: true
    arguments:
      - "@security.context"
      - "@doctrine.orm.entity_manager"

的Acme \ MyBundle \ ExtendRememberMe.php

public function __construct( $security_context, $doctrine_entity_manager ) {

    $userProviders = array( $security_context->getToken()->getUser() );

    //etc. (but error due to above line)

{

1 个答案:

答案 0 :(得分:0)

fos用户提供商 fos_user.user_provider.username fos_user.user_provider.username_email

添加- [@fos_user.user_provider.username]作为参数。