{{ render(controller("SomeBundle:Foo:Bar", {HERE I WANT TO PASS ALL query parameters app.request.query.all}) }}
那么我可以在子请求中访问所有主请求查询参数吗?子请求也应该独立运行吗?
答案 0 :(得分:4)
试试这个:
{{ render(controller("SomeBundle:Foo:bar", {'all': app.request.query.all}) }}
并在行动中将其存储在$all
变量
public function barAction($all) {
// other your code
}
答案 1 :(得分:3)
来自您的控制器:
array_merge($request->query->all(), $request->get('_route_params'));
//query->all : get all query string parameters
//_route_params : get current route parameters
从您的树枝模板必须是:
app.request.query.all|merge(app.request.attributes.get('_route_params'))
我从来没有在树枝模板中使用过这个,所以先测试一下;)
然后您可以使用该函数,但是您想要构建您将传递给子请求的变量
答案 2 :(得分:0)
直接传入app.request.query.all中的内容:
{{ render(controller("SomeBundle:Foo:Bar", app.request.query.all)
要合并一些额外的内容:
{{ render(controller("SomeBundle:Foo:Bar", { something: 'extra' }|merge(app.request.query.all))
在Symfony 3.3.10和Twig 1.35.0中测试