Предоставлено
Колином О’Деллом
в #27580.

События формы позволяют динамически изменять формы Symfony. Они используются для отображения/скрытия полей в зависимости от значения других полей, для обновления значений одного поля на основе значения, выбранного в другом поле, и т. д.

При использовании событий обычно визуализируется вся форма и извлекаются некоторые ее части с помощью JavaScript. Также часто используется частичная отправка формы с помощью AJAX. Во всех этих случаях полезно проверять форму, фактически не показывая пользователю ошибки проверки.

Вот почему в Symfony 4.2 мы добавили новый метод clearErrors() для удаления любых существующих ошибок в формах:

$task = ...;
$form = $this->createForm(TaskType::class, $task);
// ...

$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
    // ...

    $form->clearErrors();

    // this removes errors from the form and all its children forms
    $form->clearErrors(true);

    // ...
}

Поскольку очистка ошибок делает форму действительной, clearErrors() следует вызывать только после проверки правильности формы.