如何将当前请求参数传递给Symfony2路由

时间:2013-01-14 01:40:04

标签: templates symfony routing twig params

我正在尝试使用Symfony2和twig创建语言/区域设置切换网址,这样可以在不重置网址的情况下切换路由语言:

http://example.com/en/cat/test
http://example.com/it/cat/test
http://example.com/sp/cat/test

... 等等

这是我的树枝模板的重要部分:

<a href="{{ path(app.request.attributes.get('_route'),{'_locale':'en'})}}">English</a>

我的问题是,例如使用类别网址(http://example.com/en/cat/test)给我例外:

The "_category" route has some missing mandatory parameters ("category").

哪一切都可以理解,因为对于切换器网址我只传递_locale参数。

如何传递所有当前网址参数?

1 个答案:

答案 0 :(得分:4)

您可以从app.request获取所有请求属性并覆盖其中的一部分。

<a href="{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge({'_locale':'en'}))}}">