简体   繁体   中英

how to pass all request query parameters to embedded controllers in twig symfony 2?

{{ render(controller("SomeBundle:Foo:Bar", {HERE I WANT TO PASS ALL query parameters app.request.query.all}) }}

那么我可以在子请求中访问所有主请求查询参数吗?子请求也应该独立运行?

Try this:

{{ render(controller("SomeBundle:Foo:bar", {'all': app.request.query.all}) }}

and in action store it in $all variable

public function barAction($all) {
    // other your code
}

From your controller:

array_merge($request->query->all(), $request->get('_route_params'));

//query->all : get all query string parameters
//_route_params : get current route parameters

From your twig template must be sth like:

app.request.query.all|merge(app.request.attributes.get('_route_params'))

I've never used this in twig templates, so first test it ;)

Then you can use that functions however you want to build the variables you'll pass to your subrequest

To just pass in what is in app.request.query.all:

{{ render(controller("SomeBundle:Foo:Bar", app.request.query.all)

To merge something extra in:

{{ render(controller("SomeBundle:Foo:Bar", { something: 'extra' }|merge(app.request.query.all))

Tested in Symfony 3.3.10 and Twig 1.35.0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM