FosUserBundle redirect in a FilterUserResponseEvent

event-listener, fosuserbundle, php, symfony

Solution

For this purpose there is the `GetResponseUserEvent` at the `REGISTRATION_CONFIRM` event, which asks for a response:

public static function getSubscribedEvents()
{
    return array(
            FOSUserEvents::REGISTRATION_CONFIRM => 'onRegistrationConfirm',
    );
}

public function onRegistrationConfirm(GetResponseUserEvent $event)
{
    $url = $this->router->generate('my_route', array('foo' => 'bar'));
    $response = new RedirectResponse($url);
    $event->setResponse(new RedirectResponse($url));
}

Problem

I want to redirect my user after he clicks on the registration link but I'm stuck because there is no `setResponse` method in a `FilterUserResponseEvent` RegistrationListenner.php ``` public static function getSubscribedEvents() { return array( FOSUserEvents::REGISTRATION_CONFIRMED => 'onRegistrationConfirmed', ); } public function onRegistrationConfirmed(FilterUserResponseEvent $event) { $url = $this->router->generate('my_route', array('foo' => 'bar')); $response = new RedirectResponse($url); $event->setResponse(new RedirectResponse($url)); } ``` services.xml ``` <service id="myapp.profile" class="MyApp\UserBundle\EventListener\ProfileListener"> <tag name="kernel.event_subscriber"/> <argument type="service" id="router" /> </service> ```

Original source