Можно ли отключить проверку подлинности на стороне сервера (server-side) для указанного поля?
Wnen Im пытается отправить форму с динамически загруженными параметрами. Я получаю ошибку «ERROR: это значение недействительно».
Я думаю, symfony проверяет, включено ли мое значение в объявленный по умолчанию список (в моем случае его пустой список), если не возвращает false.
Это сбивает с толку, но это поведение не является достоверной, поскольку оно вызвано «ChoiceToValueTransformer», которое действительно ищет записи в вашем предварительно объявленном списке. Если ваш список пуст или вы хотите отключить трансформатор, вы можете просто сбросить его.
public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('yourField', 'choice', array('required'=>false)); //more fields... $builder->get('yourField')->resetViewTransformers(); }
Затем будет введена ваша настраиваемая валидация (если она существует).
Я нашел решение
Symfony2.4 form 'Эта форма не должна содержать лишних полей
Для получения дополнительной информации: http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html#cookbook-dynamic-form-modification-suppressing-form-validation
Добавьте этот метод buildForm
в свой класс типа формы, чтобы вы могли проверять значение поля ввода, а не выбор из значения поля выбора;
$builder->addEventListener( FormEvents::PRE_SUBMIT, function (FormEvent $event) { $form = $event->getForm(); if ($form->has('field')) { $form->remove('field'); $form->add( 'field', 'text', ['required' => false] ) } } );