我想同时发送URL中的一些参数(使用redirectToRoute),而某些参数不在URL中(使用渲染)。我该怎么办?
举一个例子:我有两个var:A和B
A必须位于网址中:http://website.com?A=smth 需要发送B来完成TWIG(但不是通过URL)
你能告诉我一个代码的例子吗?
由于
答案 0 :(得分:1)
HTTP 3xx重定向 NOT 有正文,因此您无法通过render
包含数据并同时使用redirectToRoute('redirect_target_route', array('A' => 'smth'})
。
您需要将数据保存在会话Flashbag 中,然后从redirect_target_route
的控制器操作中获取数据。
public function redirectingAction(Request $request)
{
// ...
// store the variable in the flashbag named 'parameters' with key 'B'
$request->getSession()->getFlashBag('parameters')->add('B', 'smth_else');
// redirect to uri?A=smth
return $this->redirectToRoute('redirect_target_route', array('A' => 'smth'});
}
public function redirectTargetAction(Request $request)
{
$parameterB = $request->getSession()->getFlashBag('parameters')->get('B');
// ...
}
答案 1 :(得分:0)
很简单,只需将一组键/值传递给Call to a member function parameter() on array
方法:
render()
https://twig.symfony.com/doc/2.x/api.html#rendering-templates