Расширение регистрационной формы Symfony2 FOSUserBundle приводит к проверке дубликата электронного письма
У меня есть пользовательский тип формы регистрации, определенный следующим образом:
....
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
$builder
->remove('username')
->add('firstName')
->add('lastName')
->add('hei', 'entity', array(
'class' => 'AcmeAcmeBundle:HigherEducationalInstitution',
'label' => 'Higher Educational Institution'
));
}
....
Пользовательский контроллер работает почти так же, как в FOSUserbundle, а также проверяет правильность формы.
...
public function registerAsStudentAction(Request $request)
{
/** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */
$formFactory = $this->get('acme.user_form_factory');
/** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
$userManager = $this->get('fos_user.user_manager');
/** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
$dispatcher = $this->get('event_dispatcher');
$user = $userManager->createUser();
$user->setEnabled(true);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, new UserEvent($user, $request));
$form = $formFactory->getStudentRegistrationForm();
$form->setData($user);
if ('POST' === $request->getMethod()) {
$form->bind($request);
if ($form->isValid()) {
$event = new FormEvent($form, $request);
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
$user->addRole('ROLE_STUDENT');
$userManager->updateUser($user);
if (null === $response = $event->getResponse()) {
$url = $this->get('router')->generate('fos_user_registration_confirmed');
$response = new RedirectResponse($url);
}
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
return $response;
}
}
return $this->render('AcmeUserBundle:Registration:register_student.html.twig', array('form' => $form->createView()));
}
....
Когда я пытаюсь зарегистрироваться с адресом электронной почты, которыйя уже используюя получаю исключение доктрины для повторяющейся записи уникального ключа в письме.
В обычной регистрационной форме яя получаю сообщение об ошибке формы, показывающее, что адрес электронной почты уже использовался. Как форма может передать валидатору с повторяющимся адресом электронной почты в моей форме, но не в оригинальной регистрационной форме?