Symfony - 同时发送带有和不带URL的参数

时间:2017-09-25 13:38:36

标签: php symfony get

我想同时发送URL中的一些参数(使用redirectToRoute),而某些参数不在URL中(使用渲染)。我该怎么办?

举一个例子:我有两个var:A和B

A必须位于网址中:http://website.com?A=smth 需要发送B来完成TWIG(但不是通过URL)

你能告诉我一个代码的例子吗?

由于

2 个答案:

答案 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