Переадресация Symfony 2 с помощью POST

В Symfony 2 у меня есть следующий код в моем контроллере:

// prepare to render the seller info panel $response = array( 'data' => $data, ); // render the seller info panel return $this->redirect($this->generateUrl('route', $response)); 

где маршрут:

 route: pattern: /listing/complete/{data} defaults: { _controller: FooBundle:Foo:action } requirements: _method: POST 

Это не работает, поскольку перенаправление делает запрос GET. Я также пробовал использовать этот шаблон, но он не соответствует маршруту:

 route: pattern: /listing/complete defaults: { _controller: FooBundle:Foo:action } requirements: _method: POST 

Я нашел документацию по маршрутизации бесполезной. Есть ли способ, которым я могу перенаправить запрос POST? Как бы выглядел маршрут, и нужно ли мне что-либо делать в контроллере, чтобы это произошло?

Solutions Collecting From Web of "Переадресация Symfony 2 с помощью POST"

Невозможно перенаправить запрос POST, потому что браузеру придется повторно отправить данные POST (а это не так). Вместо этого вы должны использовать переадресацию.

Последний способ перенаправления запроса POST (с Symfony 2.6 ) – это просто:

 return $this->redirectToRoute('route', [ 'request' => $request ], 307); 

Код 307 сохраняет метод запроса, а redirectToRoute() – метод быстрого доступа.

У меня была такая же ошибка с вами, когда я использовал $this->generateUrl с переданными параметрами. Однако мое перенаправление работало, когда я пробовал это:

 $this->get('router')->generate('route_name', array('param1' => 'paramVal')) 

(Я знаю, что это не поможет вам сейчас.)