Обязательный параметр в поле RepeatedType - PullRequest
0 голосов
/ 05 июня 2018

У меня есть форма, используемая для регистрации.В этой форме у меня есть это поле:

->add('plainPassword', RepeatedType::class, ['type' => PasswordType::class,
    'first_options' => ['label' => 'Mot de passe'],
    'second_options' => ['label' => 'Confirmation du mot de passe'],
    'invalid_message' => 'Erreur de mot de passe',
    'required' => true
])

Когда я пытаюсь отправить эту форму, оставляя оба поля пароля пустыми, она все еще отправляет форму и выдает ошибку недопустимого ограничения:

An exception occurred while executing 'INSERT INTO user .... : SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'password' cannot be null

Входной рендеринг дает:

<input type="password" id="field_plainPassword_first" name="field[plainPassword][first]" required="required">
<input type="password" id="field_plainPassword_second" name="field[plainPassword][second]" required="required">

В контроллере:

$user = new Tutore();
$event = new GetResponseUserEvent($user, $request);
$this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);
$form = $this->createForm(RegistrationTutoreFormType::class, null);
$form->setData($user);
$form->handleRequest($request);

if ($form->isSubmitted()) {
    if ($form->isValid()) {
        $username = $em->getRepository(Tutore::class)->getNewUsername(100000, 200000, 0);
        $user->setUsername($username);
        $user->setNom(ucfirst(strtolower($form->get('nom')->getData())));
        $user->setPrenom(ucfirst(strtolower($form->get('prenom')->getData())));
        $user->setEmail(strtolower($form->get('email')->getData()));
        $event = new FormEvent($form, $request);
        $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);
        $this->userManager->updateUser($user);

        if (null === $response = $event->getResponse()) {     
            return $this->render('User/Registration/check_email.html.twig', ['user' => $user]);
        }
        $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
        return $response;
    }

    $event = new FormEvent($form, $request);
    $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_FAILURE, $event);

    if (null !== $response = $event->getResponse()) {
        return $response;
    }
}

return $this->render('User/Registration/tutore.html.twig', ['form' => $form->createView()]);

Есть идеи почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...