Проверка частей формы Symfony на основе других частей формы

#php #symfony #symfony-forms #symfony-2.5

#php #symfony #symfony-forms #symfony-2.5

Вопрос:

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

Ответ №1:

Создайте «огромный» метод проверки, затем в самой проверке проверьте «выбранные параметры»: если они есть, проверьте «дополнительное условие»

Что-то вроде

 use SymfonyComponentValidatorConstraints as Assert; 
/**
 *
 * @AssertCallback(methods={"isValid"})
 */
class ObjectRelatedToYourForm
{
[...]
  public function isValid(ExecutionContext $context)
  {
    if ($this->optionOneSelected) {
      //perform controls and add violation in case of failure
    }
    if ($this->optionTwoSelected) {
      //perform controls and add violation in case of failure
    }
  }
}