У меня есть форма с подчиненной формой и соответствующими действиями DTO для обоих, в основной форме у меня есть переключатель, который должен сделать доступной или не имеющую форму.Таким образом, мне нужно убедиться, что подформа действительна, когда для радио установлено значение yes, для этого я использую 'validation_group'.Однако проверка не запускается ни в одной точке, и вместо этого нулевой объект передается контроллеру.Может быть, я что-то упускаю в настройке групп, потому что без этого проверка не выполняется, любые предложения приветствуются.вот мой код.
Основная форма
$builder->add('sendInvitation', YesNoType::class, [
'label' => 'Would you like to send invitation?',
'required' => false,
'data' => true,
]);
$builder->add('invitation', InviteForm::class, [
'label' => false,
'required' => false,
]);
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults([
'data_class' => 'AppBundle\Action\AddAction',
'error_bubbling' => true,
'validation_groups' =>
function (FormInterface $form) {
$groups = ['Default'];
/** @var AddAction $createAction */
$addAction = $form->getData();
if ($addAction->sendInvitation) {
$groups[] = 'send_invitation';
}
return $groups;
},
]);
}
Основная форма Действие
/**
* @var InviteAction
*
* @Assert\Valid(groups={send_invitation})
*
*/
public $invitation;