我仅在个人项目中使用 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/