Is it possible to disable backend (server-side) validation for the specified field?
Wnen Im trying to send form with dynamicly loaded options I get error \"ERROR: T
I found the solution
Symfony2.4 form 'This form should not contain extra fields' error
For more details: http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html#cookbook-dynamic-form-modification-suppressing-form-validation
Add this inside buildForm
method in your form type class so that you can validate an input field value rather a choice from a select field value;
$builder->addEventListener(
FormEvents::PRE_SUBMIT,
function (FormEvent $event) {
$form = $event->getForm();
if ($form->has('field')) {
$form->remove('field');
$form->add(
'field',
'text',
['required' => false]
)
}
}
);
It's confusing but this behaviour is not really validation related as it is caused by the "ChoiceToValueTransformer" which indeed searches for entries in your pre-declared list. If your list is empty or you want to disable the transformer you can simply reset it.
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('yourField', 'choice', array('required'=>false));
//more fields...
$builder->get('yourField')->resetViewTransformers();
}
Then your custom defined validation will step in (if it exists).