2016-03-21 122 views
1

在我的symfony項目中,我爲cron任務創建了一個命令(每天運行一次)。它改變了一個表,並且該表具有updatedBy屬性(通過原則可責備的監聽器)。 所以我必須以編程方式記錄用戶。 這是我的代碼。如何在沒有請求的情況下調度symfony事件

if ($this->container->get("security.context")->getToken() === null) { 
     $token = new UsernamePasswordToken($systemUser, null, "admin_area", $systemUser->getRoles()); 
     $this->container->get("security.context")->setToken($token); 
} 

我的問題是如何調度此事件。因爲沒有要求我不能使用下面的代碼。

$request = $this->container->get("request"); 
     $event = new InteractiveLoginEvent($request, $token); 
     $this->container->get("event_dispatcher")->dispatch("security.interactive_login", $event); 

還得到(「請求」)服務不能使用裏面的命令。 請幫我分派這個活動。

回答

0

- 您可以創建通過create method爲例請求對象:

$event = new InteractiveLoginEvent($request, $token); 

我不知道是否需要從請求一些PARAMS:

$request = Request::create("?foo=bar"); 

然後在事件中使用它但您可以添加(請參閱文檔)。

希望這個幫助

+0

問題依然存在。我第一次運行命令,updatedBy字段正確填充。當我再次運行該命令時,updatedBy字段由null填充。 然後再次如果我運行命令它正確地填充updatedBy領域。這是迭代發生的。我認爲這是因爲我沒有派遣。但我不知道到底是什麼問題。 –

相關問題