2014-08-27 3 views
1

Я использую Symfony Service Configurator в своем проекте для настройки службы после ее создания (Docs), в режиме Configure Мне нужен текущий пользователь, зарегистрированный, поэтому я вставляю контейнер и я попытался получить токенную форму службы Security.context, но у меня всегда был NULL. Я попытался также вставить только конструкцию security.context в мою конструкцию Configurator, но я получил тот же результат.Конфигуратор Symfony Service: getToken с security.context является NULL

Любые идеи pls

Спасибо.

 
class MyConfigurator 
{ 
    private $container; 

    public function __construct(ContainerInterface $container) 
    { 
     $this->container = $container; 
    } 


    public function configure() 
    { 
     $user = $this->container->get('security.context')->getToken(); 
     var_dump($user); // = NULL 
    } 
} 
+0

ли Вы вошли в систему ?? –

+0

@ skowron-line да Я зарегистрирован –

+0

проверить http://stackoverflow.com/questions/11167979/authentication-token-always-null-in-kernel-request-event-in-symfony-2?rq=1 to посмотрите, помогает ли это –

ответ

1

Я решаю проблему, получая UserId из сеанса и выбирая текущего пользователя из базы данных.

UserId установлен ранее в AuthenticationListener в моем проекте. Так что я изменить мой Configurator конструкцию, чтобы быть похожим на это:

 
    /** 
    * @param EntityManager $em 
    * @param Session $session 
    */ 
    public function __construct(EntityManager $em, Session $session) 
    { 
     $this->em = $em; 
     $this->session = $session; 
    } 
0

Лучший способ должен быть:

use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; 

class MyConfigurator 
{ 
    private $tokenStorage; 

    public function __construct(EntityManager $em, TokenStorage $tokenStorage) 
    { 
     $this->em = $em; 
     $this->tokenStorage= $tokenStorage; 
    } 

    public function configure() 
    { 
     $user = $this->tokenStorage->getToken()->getUser(); 
    } 

    .... 

 Смежные вопросы

  • Нет связанных вопросов^_^