2014-01-14 2 views
7

У меня возникла странная проблема с методом handleRequest в Symfony 2.3.5.Symfony2: handleRequest() не отправляет форму

Я представляю форму с handleRequest ($ editForm-> handleRequest ($ request)), и все отлично работает на dev. Но в среде prod она не работает. Я отлаживаю все, и я обнаружил, что он не отправляет эту форму.

мне удалось получить эту работу с изменением

$editForm->handleRequest($request) 

в

$editForm->submit($request->request->get($editForm->getName())) 

Но кто-то может сказать мне, почему handleRequest не работает для меня только в прод среде?

Я удалил весь кеш.

EDIT: Я также напоминаю себе, что он отлично работает над созданием, но не при редактировании/обновлении.

+0

Получение этой проблемы при отправке данных через AJAX? Проверьте [этот ответ] (http://stackoverflow.com/questions/11208992/symfony2-invalid-form-without-errors/38079913#answer-38079913) – Stphane

ответ

8

Вы устанавливаете параметр метода при создании своей $ editForm?

$editForm = $this->createForm(new TaskType(), $task, array(
    'action' => $this->generateUrl('edit_task'), 
    'method' => 'PUT', 
)); 

$editForm->handleRequest($request); 

Кроме того, вы, возможно, потребуется установить http_method_override в вашей конфигурации. http://symfony.com/doc/current/reference/configuration/framework.html#http-method-override

+0

странно, что вам не нужно было это делать с помощью $ form-> Отправить. какая головная боль вызвала – timhc22

+1

У меня была такая же проблема, но на самом деле не нужно было добавлять «действие» в параметры, мне нужно было добавить «метод» => «PUT». Моя ситуация может быть другой, поскольку мой проект - это только REST API. –

+0

@JeremyZerr да, если вы просто строите API, вам никогда не понадобится визуализировать форму на лицевой стороне и, следовательно, не нужно действовать. –

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