Symfony& Twig通过将字符串与app.request相结合来转换路由网址

时间:2015-12-22 21:10:04

标签: symfony twig

我已将以下注释路由添加到我的控制器。

/**
 * @Route("/{_locale}/over-ons", name="_about-us_nl", defaults={"_locale": "nl"}, requirements={"_locale": "nl|en|de"})
 * @Route("/{_locale}/about-us", name="_about-us_en", defaults={"_locale": "en"}, requirements={"_locale": "nl|en|de"})
 * @Route("/{_locale}/uber-uns", name="_about-us_de", defaults={"_locale": "de"}, requirements={"_locale": "nl|en|de"})
 */

现在我想在树枝上使用正确的路由器。但因此我需要将一个字符串与app.request结合起来。这是什么语法?

以下无效:

{{ path( '_about-us_' ~ app.request.get('_locate') ) }}

2 个答案:

答案 0 :(得分:0)

我建议您使用JMSI18nRoutingBundle(检查here文档)。

此捆绑包可以将您的路线定义为示例:

的routing.yml

- /de/kontakt
- /en/contact

生成的网址:

<!-- uses locale of the request context to generate the route -->
<a href="{{ path("contact") }}">Contact</a>

<!-- sometimes it's necessary to generate routes for a locale other than that
     of the request context, then you can pass it explicitly -->
<a href="{{ path("homepage", {"_locale": "de"}) }}">Deutsch</a>
<a href="{{ path("homepage", {"_locale": "en"}) }}">English</a>

该包提供了更多knd的自定义,如here

所述

Bundle提供正确的URL而不指定语言环境。您可以设置区域设置以生成网址:

or

希望这个帮助

答案 1 :(得分:0)

使用以下内容:

{{ path('_about-us_', { '_locale': app.request.locale }) }}