0
我試圖讓我寫的監聽器中的當前登錄用戶(在symfony2中工作,但不在Symfony 3.2.2中)。監聽doctrine.event_listener:onFlush,security.token_storage總是爲空
我的問題是,security.token_storage-> getToken()始終爲空。
我發現的是提示securityListener可能不會被執行此點;所以我沒有令牌 - >因此沒有用戶。
因此,這是服務聲明(service.xml中)
acme.history_logging_listener:
class: Acme\EventListener\HistoryLoggingListener
arguments:
- "@service_container"
- "@security.token_storage"
tags:
- { name: doctrine.event_listener, event: onFlush }
這裏是Classcode
public function __construct(ContainerInterface $oContainer, TokenStorageInterface $oTokenStorage)
{
$this->_oTokenStorage = $oTokenStorage;
}
public function onFlush(OnFlushEventArgs $eventArgs)
{
\dump($this->_oTokenStorage->getToken()); // should contain a value (not null)
die();
}
編輯
令牌將聽者的第二個呼叫後填寫;第一次迭代沒有數據;所以對我來說沒問題。
thx的提示!我試了一下,檢查了令牌,但沒有成功;但在聽者的第二次調用(不知何故以後)令牌被填充:)我認爲解決方案是不使用die()並檢查以後的迭代:]。到目前爲止,數據並不存在,因此令牌第二次可用並滿足我的需求。謝謝! –