【发布时间】:2020-02-10 13:42:42
【问题描述】:
我有几十条路线定义如下:
services:
path:
en: /en/services
de: /de/dienstleistungen
controller: App\Controller\SimplePageController::page
这是使用Localized routing,我相信它是在 Symfony 4.1 中引入的。
这些路线都有英语和德语的路径。现在我想用其他语言翻译一些特定的页面。比如我的主页。问题是如果我将另一种语言添加到我的主页路径,它将无法加载,因为它无法创建指向没有以这种新语言定义的路径的其他页面的链接。
如果我访问 /nl/homepage,Twig 中的以下链接生成失败
<link href="{{ path('services') }}">
有错误
无法为命名路由“服务”生成 URL 作为此类路由 不存在。
如果当前语言没有路由,我如何告诉 Symfony 创建指向英语路由的链接?或者更好的是,指定一些动态路径:
services:
path:
en: /en/services
de: /de/dienstleistungen
default: /$1/services
controller: App\Controller\SimplePageController::page
编辑:我现在使用的是 Symfony 5.0.4,但仍然遇到同样的问题。
【问题讨论】:
-
你的意思是“如何生成回退到英语语言”?
-
这是一种可能的解决方案,当然。
-
我做到了。它不显示从根本没有为路由定义的语言的路由回退。即便如此,我还是尝试将其调整为 routes.yml 语法(因此没有控制器注释)并得到了与在 SO 上发布之前相同的错误。
-
我相信您应该提供实际产生问题的示例树枝代码。这不是问题,可能是您没有得到有用答案的部分原因。
标签: php symfony routing symfony4 symfony5