Symfony 4, как сделать одно из полей, обязательным для заполнения?

Добрый день Форум,

как можно решить следующую проблему?:

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

Может кто подсказать как это можно осуществить?

и может кто подсказать, для чего нужен
резолвер public function configureOptions(OptionsResolver $resolver)
и для чего нужны группы в валидации?
  • Вопрос задан
  • 453 просмотра
Пригласить эксперта
Ответы на вопрос 1
voronkovich
@voronkovich
Самый простой способ - проверить вручную поля и добавить ошибку к форме:

$form = $this->createForm(MyFormType::class, $data);

$form->handleRequest($request);

if ($form->isSubmitted() && (/* Проверка полей */)) {
    $form->addError(new FormError('Хотя бы одно из полей ... должно быть заполнено'));
}

if ($form->isSubmitted() && $form->isValid()) {
   // Сохранение результатов
}


Для более сложных случаев (если вы собираетесь переиспользовать форму в других местах) лучше добавить свой валидатор: https://coderwall.com/p/1blgvq/symfony2-custom-fie...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы