在我的symfony项目中,我为cron任务创建了一个命令(一天运行一次)。它更改了一个表,该表具有updatedBy属性(通过doctrine blameable listener)。 所以我必须以编程方式记录用户。 这是我的代码。
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 :(得分:0)
- 您可以通过create method创建请求对象,例如:
$request = Request::create("?foo=bar");
然后在事件中使用它:
$event = new InteractiveLoginEvent($request, $token);
我不知道是否需要请求中的某些参数,但您可以添加(请参阅文档)。
希望这个帮助