In meinem symfony-Projekt habe ich einen Befehl für Cron-Task erstellt (läuft einmal für Tag). Es ändert sich eine Tabelle und diese Tabelle hat updatedBy Eigenschaft (durch Doktrin tadellosen Listener). Also muss ich einen Benutzer programmgesteuert protokollieren. Hier ist mein Code dafür.So senden Sie Symfony-Ereignis ohne Anforderung
if ($this->container->get("security.context")->getToken() === null) {
$token = new UsernamePasswordToken($systemUser, null, "admin_area", $systemUser->getRoles());
$this->container->get("security.context")->setToken($token);
}
Mein Problem ist, wie dieses Ereignis zu versenden ist. Da es keine Anfrage gibt, kann ich folgenden Code nicht verwenden.
$request = $this->container->get("request");
$event = new InteractiveLoginEvent($request, $token);
$this->container->get("event_dispatcher")->dispatch("security.interactive_login", $event);
Auch erhalten ("Anfrage") Service kann nicht innerhalb Befehl verwenden. Bitte helfen Sie mir, diese Veranstaltung zu versenden.
Problem ist immer noch da Liebe. Beim ersten Mal führe ich den Befehl updateBy korrekt aus. Wenn ich diesen Befehl erneut ausführe, wird das Feld updatedBy mit null gefüllt. dann wieder, wenn ich den Befehl ausführen füllen Sie updateBy Feld korrekt. Das passiert iterativ. Ich dachte, das passiert, weil ich nicht verschickt habe. Aber ich weiß nicht genau, was das Problem ist. –