2015-12-15 4 views
3

Мне нужно отправить некоторые данные в форму Symfony, и для этого я использую метод submit().Symfony2. Как разрешить форме игнорировать дополнительные поля?

Но когда запрос содержит дополнительные данные, я получил сообщение об ошибке:

"This form should not contain extra fields"

Можно позволить форме пропустить дополнительные данные с использованием конфигурации формы?

Возможно, для этого существует другой способ?

Примечание: мне нужен submit() метод, а не handleRequest(), потому что я отправляю свои данные с помощью запроса Ajax междоменного, поэтому форма не может быть представлен следующим образом. Причина: isValid() возвращение false, потому что isSubmitted() return false.

P.S. Конечно, я могу создать сервис, который будет обрабатывать мой запрос, прежде чем передавать его в форму, но, возможно, более элегантный способ существует.

+1

Я не думаю, что это дубликат. Связанный вопрос не учитывает новую версию Symfony. –

ответ

7

в форму Тип:

/** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'AppBundle\Entity\YourEntity', 
      'translation_domain' => strtolower('entity_translation_domain'), 
      'allow_extra_fields' => true, 
     )); 
    } 

allow_extra_fields позволит вашей форме получить дополнительные данные

+1

спасибо за ответ, он работает! Кажется, этот вариант игнорирует дополнительные данные, поэтому это то, что мне нужно. –

Смежные вопросы