Show form errors

Tags: , ,



I would like to show error messages in the top of my registration form. I created my registration form:

<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>

And on my UserType class, I added all necessaries input:

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(),
         ))
        ;
    }}

Every time I get an error message, correctly displayed, I found it under the concerned input and not in the top of my registration form. I added this on my form but don’t help:

{{ form_errors(form) }}

Any suggestion?

Answer

Did you set error_bubbling => true?

Documentation: https://symfony.com/doc/current/reference/forms/types/text.html#error-bubbling



Source: stackoverflow