我第一次在这个论坛上发布消息,我经常使用。我在 Symfony2 应用程序中使用 FOSUserbundle 来管理用户。当用户通过以下方式创建帐户时,我激活了电子邮件确认的发送:
fos_user:
registration:
confirmation:
enabled: true
它工作得很好:电子邮件发送成功。我被重定向到 /check-email 页面,显示此电子邮件已发送。但是,我想更改重定向:我想重定向到我的索引页而不是 /check-email。所以我做了我的研究,我知道他必须经历 FOSUserBundle 事件(在此处列出)。
我做了什么 :
class RegistrationListener implements EventSubscriberInterface {
private $router;
public function __construct(UrlGeneratorInterface $router) {
$this->router = $router;
}
public static function getSubscribedEvents() {
return array(
FOSUserEvents::REGISTRATION_CONFIRM => 'onRegistrationConfirm');
}
public function onRegistrationConfirm(FormEvent $event) {
$url = $this->router->generate('listeArticlesAccueil');
$event->setResponse(new RedirectResponse($url));
}
}
和 services.yml
services:
listener_user.registration_listener:
class: My\Soft\UserBundle\EventListener\RegistrationListener
arguments: [@router]
tags:
- { name: kernel.event_subscriber }
问题是每次我被重定向到页面/check-email。因此,我告诉我这可能是错误的事件。所以我也尝试了 REGISTRATION_SUCCESS。但没有任何改变。所以要么我没有使用正确的事件,要么我做错了什么。
无论哪种情况,我希望你能帮助我!
非常感谢,对不起我的英语不好;)