Как выбирать группы валидации, основанные на нажатой кнопке
Дата обновления перевода 2023-09-04
Как выбирать группы валидации, основанные на нажатой кнопке
Когда ваша форма содержит несколько кнопок отправки, вы можете изменять группу валидации, в зависимости от того, какая кнопка была использована для отправки формы. Например, рассмотрите форму в мастере, которая позволяет вам перейти к следующему шагу или вернуться к предыдущему. Также предположите, что при возвращении к предыдущему шагу, данные из формы должны быть сохранены, но не валидированы.
Для начала, нам надо добавить в форму две кнопки:
1 2 3 4 5
$form = $this->createFormBuilder($task)
// ...
->add('nextStep', SubmitType::class)
->add('previousStep', SubmitType::class)
->getForm();
Потом, мы конфигурируем кнопку для возврата к предыдущему шагу так, чтобы
она запускала определённые группые валидации. В этом примере, мы хотим, чтобы
она сдерживала валидацию, так что мы устанавливаем опцию validation_groups
как "false":
1 2 3 4 5 6
$form = $this->createFormBuilder($task)
// ...
->add('previousStep', SubmitType::class, array(
'validation_groups' => false,
))
->getForm();
Теперь форма будет пропускать ваши ограничения валидации. Она будет всё ещё валидировать базовые ограничения целостности, вроде проверки размера загруженного файла или отправки текста в цифровом поле.
See also
Чтобы увидеть, как использовать сервис для динамического решения validation_groups
,
прочтите статью Как динамически конфигурировать группы валидации форм.