我有一个需要获取当前登录用户的教义监听器。
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发送我的授权标题。
有人能告诉我我的代码有什么问题吗?
提前致谢。
答案 0 :(得分:2)
尝试在preFlush方法中调用$tokenStorage->getToken()
而不是在构造函数中。