我想知道如果验证成功,可以在会话中插入变量(使用FOSUserBundle)。
插入多于或少于两行。
$session = $request->getSession();
$this->$session->set('type','OneType');
有一个非常简单的方法吗?我确实想在成功验证时这样做,而不是在任何地方。
你需要听听security.interactive_login
活动。 (Docs)
简单的例子,使用an event subscriber:
<?php
// src/EventSubscriber/SecuritySubscriber.php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\SecurityEvents;
class SecuritySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents()
{
return [
SecurityEvents::INTERACTIVE_LOGIN => 'successfulLogin',
];
}
public function successfulLogin( InteractiveLoginEvent $event )
{
$event->getRequest()->getSession()->set('foo', 'bar');
}
}
您尚未指定版本,但这应该适用于Symfony 4的默认安装。