定期的に使用しているこのフォーラムにメッセージを投稿するのは初めてです。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を試しました。しかし、何も変わりません。したがって、正しいイベントを使用していないか、間違ったことをしています。
いずれにせよ、あなたが私を助けてくれることを願っています!
どうもありがとう、そして私の悪い英語でごめんなさい;)