使用symfony2中的twig将路径请求添加到路径请求中

Thi*_*ico 6 routes symfony twig

我一直在谷歌这个问题,但我找不到任何有同样问题的人...而且我不认为我是这里唯一一个>.<

让我们看看,我正在使用symfony2中的翻译.我需要使用twig ...事情是我需要3个链接,以便人们可以更改网站的语言.该链接必须重定向到用户所在的同一页面,但更改"_locale".

我首先想到的是这样的:

// in routing.yml
bundleStuff_someUrl:
    pattern:  /{_locale}/aloha
    defaults: { _controller: bundleStuff:Aloha:foo }

bundleStuff_fooUrl:
    pattern:  /{_locale}/foo/{fooParam}
    defaults: { _controller: bundleStuff:Foo:foo }

// in view.html.twig
<a href="{{ path((app.request.get('_route'), { '_locale': 'l1' }) }}">lang1</a>
<a href="{{ path((app.request.get('_route'), { '_locale': 'l2' }) }}">lang2</a>
<a href="{{ path((app.request.get('_route'), { '_locale': 'l3' }) }}">lang3</a>
Run Code Online (Sandbox Code Playgroud)

问题变成了(在这种情况下)_route是fooUrl ...有没有办法将当前视图中的每个属性追加到我正在寻找的路径?换句话说,参考这个例子:有没有办法让twig知道如果当前视图是'fooUrl',它必须在路径中添加'fooParam'?

提前致谢!希望这篇文章有用!:d

Mun*_*Das 11

_route_paramsrequest属性保存当前路由的参数.所以枝条代码是,

{% set route = app.request.get('_route') %}
{% set route_params = app.request.get('_route_params') %}

<a href="{{ path(route, route_params | merge({ '_locale': 'l1' })) }}">lang1</a>
<a href="{{ path(route, route_params | merge({ '_locale': 'l2' })) }}">lang2</a>
<a href="{{ path(route, route_params | merge({ '_locale': 'l3' })) }}">lang3</a>
Run Code Online (Sandbox Code Playgroud)