2016-03-21 216 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领域。这是迭代发生的。我认为这是因为我没有派遣。但我不知道到底是什么问题。 –

相关问题