进入控制器
use Symfony\Component\HttpFoundation\Request;
public function fooAction(Request $request)
{
$params = $request->query->all();
}
请注意:$request->query->all();
将返回一个带有名为查询参数的键的数组
进入树枝
只要您从控制器传递(一如既往地阅读此内容),您就可以通过这种方式将参数传递给视图
use Symfony\Component\HttpFoundation\Request;
public function fooAction(Request $request)
{
$params = $request->query->all();
return $this->render('MyFooBundle:Bar:foobar.html.twig', array('params' => $params));
}
在您的 twig 模板foobar.html.twig
中,您只需使用params变量即可访问所有查询字符串参数。
例如,使用此请求 URL:http://example.com/?foo=bar&secondfoo=secondbar
{% for paramName, paramValue in params %}
<div>{{ paramName }}: {{ paramValue }}</div>
{% endfor %}
<div>{{ params.secondfoo }}</div>
树枝输出:
<div>foo: bar</div>
<div>secondfoo: secondbar</div>
<span>secondbar</span>
另一种方法是app.request.query.all
在 twig 中使用,而无需从控制器向 twig 传递任何内容。
最后说明
如果您想在将数组从控制器传递给 twig 时修改其中一个参数,只需更改其中一个数组值,就像使用普通值一样(即$params['id'] = $params['id'] - 1;
:)