Предоставлено
Колином О’Деллом
в #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()
следует вызывать только после проверки правильности формы.