在EventListener类的onRegistrationSuccess方法上,我有一个api调用,它将用户注册到另一个系统中。
$response = $this->service->postCustomer($customer)
if (200 !== $response->getCode() {
$response = new RedirectResponse($event->getRequest()->getPathInfo());
$event->setResponse($response);
}
我的问题是,捕获错误或将其显示在同一页面上的最佳方法是什么?例如,路线位于/user/register
上,响应为验证错误。因为现在,它仍然会将使用重定向到支票电子邮件页面。
即时通讯使用FOSUserBundle。我在Symfony中真的很新,所以我真的不知道什么是最好的方法
谢谢!
答案 0 :(得分:0)
您需要按照in the documentation所述提高监听器的优先级,否则负责电子邮件确认页面的监听器会更早触发
public static function getSubscribedEvents()
{
return [
FOSUserEvents::REGISTRATION_SUCCESS => [
['onRegistrationSuccess', 10],
],
];
}
您可以使用Flash消息显示错误,如@MohamedRadhiGuennichi建议的那样
订阅FOSUserEvents::REGISTRATION_SUCCESS
意味着该用户已经存储在您的数据库中,因此如果发生错误,则应回滚该用户。