2

定期的に使用しているこのフォーラムにメッセージを投稿するのは初めてです。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を試しました。しかし、何も変わりません。したがって、正しいイベントを使用していないか、間違ったことをしています。

いずれにせよ、あなたが私を助けてくれることを願っています!

どうもありがとう、そして私の悪い英語でごめんなさい;)

4

3 に答える 3

0

REGISTRATION_SUCCESS に賭けます。ドキュメント ( https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/FOSUserEvents.php ) には、このイベントで応答を設定できると書かれています。REGISTRATION_CONFIRM は、ユーザーへのアクセスのみを許可します

于 2013-07-29T15:10:09.037 に答える