FOSUserBundle: Leiten Sie den Benutzer nach der Registrierung bei EventListener um

Ich möchte den Benutzer direkt nach der Registrierung zu einem anderen Formular weiterleiten, bevor er auf etwas auf meiner Website zugreifen kann (wie inhttps://github.com/FriendsOfSymfony/FOSUserBundle/issues/387).

Also erstelle ich einen eventListener wie im doc:

<?php
namespace rs\UserBundle\EventListener;

use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\UserEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;

/**
 * Listener responsible to change the redirection at the end of the password resetting
 */
class RegistrationConfirmedListener implements EventSubscriberInterface
{
    private $router;

    public function __construct(UrlGeneratorInterface $router)
    {
        $this->router = $router;
    }

    /**
     * {@inheritDoc}
     */
    public static function getSubscribedEvents()
    {
        return array(
                FOSUserEvents::REGISTRATION_CONFIRMED => 'onRegistrationConfirmed'
        );
    }

    public function onRegistrationConfirmed()
    {
        $url = $this->router->generate('rsWelcomeBundle_check_full_register');
        $response = new RedirectResponse($url);
        return $response;
    }
}

Services.yml:

services:
    rs_user.registration_completed:
        class: rs\UserBundle\EventListener\RegistrationConfirmedListener
        arguments: [@router]
        tags:
            - { name: kernel.event_subscriber }

Aber es funktioniert nicht, der Benutzer registriert sich, er klickt auf den Bestätigungslink in seiner Mailbox, er wird nicht auf die gewünschte Seite umgeleitet, er ist angemeldet und ich habe nur die Nachricht, die besagt, dass der Account bestätigt wurde.

Warum leitet es mich nicht weiter zur Route: rsWelcomeBundle_check_full_register, wie ich es möchte?

Vielen Dank

Antworten auf die Frage(5)

Ihre Antwort auf die Frage