symfony 3 Doctrine LIstener服务注入token_storage不起作用

时间:2016-09-06 13:37:55

标签: php doctrine listener symfony

我有一个需要获取当前登录用户的教义监听器。

class DoctrineListener
{
    /**
     * @var null|TokenInterface
     */
    private $token;

    /**
     * DoctrineListener constructor.
     *
     * @param TokenStorageInterface $tokenStorage
     */
    public function __construct(TokenStorageInterface $tokenStorage)
    {
        $this->token = $tokenStorage->getToken();

        var_dump($this->token);
    }

和我的service.yml:

doctrine.listener:
    class: AppBundle\EventListener\DoctrineListener
    arguments:
      - '@security.token_storage'
    public: false
    tags:
      - { name: doctrine.event_listener, event: preFlush, method: preFlush }

当我尝试在此侦听器中使用它时,转储始终返回null。 我在其他服务中注入了token_storage_service,效果很好。

我在symfony 3.1下,有一个rest API。 我用Postman发送我的授权标题。

有人能告诉我我的代码有什么问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

尝试在preFlush方法中调用$tokenStorage->getToken()而不是在构造函数中。