相关疑难解决方法(0)

如何覆盖FOSUserBundle的EmailConfirmationListener

我激活了FOSUserBundle的用户确认.但我不想接受原始听众的回应

$url = $this->router->generate('fos_user_registration_check_email');
$event->setResponse(new RedirectResponse($url));
Run Code Online (Sandbox Code Playgroud)

我想选择另一条路线.我试图扩展EventListener

namespace Acme\MyBundle\EventListener;

use FOS\UserBundle\EventListener\EmailConfirmationListener as BaseListener;
// ...

class EmailConfirmationListener extends BaseListener
{
    public function onRegistrationSuccess(FormEvent $event)
    {    
        $url = $this->router->generate('fos_user_registration_check_email');
        $event->setResponse(new RedirectResponse($url));
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,EventListener似乎不是可扩展的,就像控制器或表单一样.(万一你想知道:当然我的捆绑是FOSUserBundle的孩子.)

所以我想避免直接在vendor文件夹中编辑这两行(因为这样做非常糟糕!).那么我摆脱这场灾难的方法是什么?

events event-listener symfony fosuserbundle

10
推荐指数
1
解决办法
6080
查看次数

标签 统计

event-listener ×1

events ×1

fosuserbundle ×1

symfony ×1