在Symfony 4中创建包含区域设置的URL

时间:2018-04-25 06:21:04

标签: php symfony routing twig symfony4

我正在创建一个支持多种语言的Symfony 4 Web应用程序。路由已完成,因此我可以/en/suchpage/de/suchpage。我现在正在寻找一种使用正确的语言环境链接到“suchpage”的方法。

路由如下所示:

suchpage:
    path: /{_locale}/suchpage/
    controller: App\Controller\SimplePageController::such
    requirements:
        maw: '%app.locales%'
    defaults:
        _locale: '%locale%'

我正在使用Twig,它来自Twig模板,我需要能够链接到正确版本的页面。这“有效”:

{{ path('suchpage', {'_locale': app.request.locale}) }}

它有两个问题:

  1. 我不想在这个地方重复这个。像{{ page('suchpage') }}这样的东西要好得多。这样的功能存在吗? path()可以表现得像这样吗?

  2. 如果未在请求中指定区域设置,则会失败,因为在所有页面上都不需要(因为某些页面有默认值)。

1 个答案:

答案 0 :(得分:0)

有一个维护包 JMSI18nRoutingBundle ,以实现您的需求。

composer require jms/i18n-routing-bundle

关于此捆绑包的一些有用的链接:

Packagist:https://packagist.org/packages/jms/i18n-routing-bundle

GitHub:https://github.com/schmittjoh/JMSI18nRoutingBundle