php - 删除 symfony 路由组件中的默认语言环境前缀

标签 php symfony routes url-routing symfony-routing

在个人项目中使用 symfony 路由组件(没有完整的 symfony 框架)。我的方法是:在 routes.yaml 文件中添加路由,如下所示:

index:
    path:     /test
    methods: GET
    controller: 'App\Catalog\Controller\Home\IndexController::index'

register:
    path:     /test/account/register
    methods: GET
    controller: 'App\Catalog\Controller\Account\RegisterController::index'

我的路由工作正常,但我需要在多语言系统的 uri/routing 中添加自动区域设置前缀,如下所示:

mydomain/test    //for default language ie: en
mydomain/test/fr
mydomain/test/de
mydomain/test/account/register      //for default language ie:en
mydomain/test/fr/account/register
mydomain/test/de/account/register

如何在routes.yaml文件中添加区域设置前缀并删除默认区域设置前缀语言?!

最佳答案

如果您的应用程序是最新的,您可以使用 Internationalized routing 4.1 中引入了这样的

# config/routes/annotations.yaml
controllers:
    resource: '../../src/Controller/'
    type: annotation
    prefix:
        en: '' # don't prefix URLs for English, the default locale
        fr: '/fr'
        de: '/de'

否则,您可以引用另一个带有前缀选项的 routing.yml 文件,如下所示

# config/routing.yml

french_route:
    resource: "french_routing.yml"
    prefix:   /fr

deutch_route:
    resource: "deutch_routing.yml"
    prefix:   /de

您可以使用文件分隔语言,每种语言都会自动带有自己的前缀

关于php - 删除 symfony 路由组件中的默认语言环境前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56555990/

相关文章:

php - 我想根据连接的列对数据进行排序

php - 修复在 Linux 上运行的 PHP 中的时间格式警告

php - Symfony 2 Acls insertClassAces

Laravel 路由,->name 方法?

html - Web api 起始 html 页面

mysql - 如何在laravel中更新mysql的数据

javascript - 如何设置og :url to jquery gallery slides?

php - Mysql查询插入使用等号

javascript - Google map JavaScript API 警告 : NoApiKeys

php - 如何使用 ZendOpCache 作为 Doctrine2 缓存?