使用EventListener重定向用户的Symfony2错误,期望GetResponseEvent

时间:2016-11-28 23:14:22

标签: php symfony events fosuserbundle event-listener

我尝试使用EventListener在注册后实现重定向,但我不知道如何以corectly方式触发它。我有这个错误

Type error: Argument 1 passed to
UserBundle\EventListener\RegistrationConfirmListener::onRegistrationConfirm()
must be an instance of UserBundle\EventListener\GetResponseEvent, 
instance of Symfony\Component\EventDispatcher\Event given

这是我的RegistrationConfirmListener::onRegistrationConfirm()方法:

public function onRegistrationConfirm(GetResponseEvent $event)
{
    $url = $this->router->generate('standard_user_registration_success');
    $response = new RedirectResponse($url);
    $event->setResponse($response);
}

以下是service.yml文件中我的服务声明:

rs_user.registration_complet:
    class: UserBundle\EventListener\RegistrationConfirmListener
    arguments: [@router]
    tags:
        - { name: 'kernel.event_subscriber', event: 'fos_user.registration.completed'}

以下是我的控制器中的 - >调度方法:

$dispatcher = $this->get('event_dispatcher');
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED);

我不明白我如何或在哪里可以将其他参数传递给我的活动,以及它将如何实际重定向我的用户...我实际上不确定它是否会起作用。

0 个答案:

没有答案