Всем добрый день, есть такая проблема, на форме есть select, на него вешаю событие PRE_SUBMIT, когда в селекте что то выбираю отправляется аджакс запрос, срабатывает событие PRE_SUBMIT и в зависимости от выбранного в селекте на страницу добавляю поле, до этого момента все нормально, но если я попытаюсь сохранить формы то она начнет ругаться что в форме появились extra field и мол типо надо поставить настройку что бы разрешить их, собственно вопрос, можно ли как то сделать что бы форма понимала что были добавлены динамические поля(у них настройка mapped=false) и поэтому они лежат просто в свойстве children. Плюс у меня есть такой момент что эти поля могут быть изначально на странице и при таком раскладе они попадают в children, а если они динамически добавились то летят в extra_data что мне не очень нравится.
Код максимально условный, но с сохранением главных моментов.
Главная форма$builder->add('addNewRowFields', ChoiceType::class, array(
'multiple' => false,
'expanded' => false,
'choices' => array(
'Select' => false,
'Значени1' => '1',
'Значени2' => '2',
'Значени3' => '3',
'Значени4' => '4'
),
'mapped' => false,
));
$builder->get('addNewRowFields')->addEventSubscriber(new AddRowFields());
Подписчик событияpublic static function getSubscribedEvents()
{
return array(FormEvents::PRE_SUBMIT => 'addFields');
}
public function addFields(FormEvent $event)
{
//тут условие на то что пришло из selecta
$form = $event->getForm();
$form->getParent()->add('lead', InvoiceLead::class, array(
'label' => false,
'mapped' => false,
));
}