我的控制器刚刚处理完表单,
if ($form->isValid())
{
// Persist my data.
// ...
// Now move on to the next page.
return $this->redirectToRoute('page2');
}
但是我想使用POST将变量传递给该页面。即类似于:
$this->redirectToRoute('page2', array('state' => 'wonderful'));
这显然会将其作为GET参数传递。人们建议使用redirect 307s and forwarding,但他们只是转发当前的请求。我需要做的是用我的任意消息创建一个新的请求。我怎么能做到这一点?
答案 0 :(得分:0)
不确定这是否有效,但值得一试:
icons
答案 1 :(得分:0)
将您的重定向委托给客户端,然后发布帖子请求。
你的控制器:
if ($form->isValid())
{
return $this->render('redirect.html.twig');
}
redirect.html.twig:
<html>
<body onload="document.frm1.submit()">
<form action="{{path('page2')}}" method="POST" name="frm1">
<input type="hidden" name="state" value="wonderful" />
</form>
</body>
</html>
顺便说一句,您可以将后置参数绑定到Symfony表单,然后在模板中进行渲染。
答案 2 :(得分:0)
您可以使用session
在初始控制器中
$this->get('session')->set('request',$request)
在其他
$request=$this->get('session')->get('request')
或者您可以使用cookies
$response->headers->setCookie(new Cookie('request', $request));
- &GT;
$response->headers->getCookie('request'));
答案 3 :(得分:0)