Показать ошибки формы - PullRequest
       4

Показать ошибки формы

1 голос
/ 03 ноября 2019

Я хотел бы показать сообщения об ошибках в верхней части моей регистрационной формы. Я создал свою регистрационную форму:

<div class="example-wrapper">
<h1>Register</h1>
{{ form_start(form) }}
    {{ form_row(form.email) }}
    {{ form_row(form.plainPassword.first) }}
    {{ form_row(form.plainPassword.second) }}
    {{ form_row(form.firstname) }}
    {{ form_row(form.lastname) }}
    {{ form_row(form.termsAccepted) }}
    <button type="submit">Register!</button>
{{ form_end(form) }}
</div>

И в свой класс UserType я добавил все необходимые данные:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
       ->add('email', EmailType::class)
       ->add('plainPassword', RepeatedType::class, array(
            'type' => PasswordType::class,
            'first_options' => array('label' => 'Password'),
            'second_options' => array('label' => 'Repeat Password'),
            'constraints' => [
                new NotBlank([
                    'message' => 'Enter a valid password.'
                ]),
                new Length([
                    'min' => 8,
                    'minMessage' => 'Password must be at least 8 characters.'
                ])
            ]
         ))
         ->add('firstname', TextType::class)
         ->add('lastname', TextType::class)
         ->add('termsAccepted', CheckboxType::class, array(
              'mapped' => false,
              'constraints' => new IsTrue(),
         ))
        ;
    }}

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

{{ form_errors(form) }}

Есть предложения?

1 Ответ

2 голосов
/ 03 ноября 2019

Вы установили error_bubbling => true?

Документация: https://symfony.com/doc/current/reference/forms/types/text.html#error-bubbling

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