我正在使用 PHP 7.2 开发 Symfony 4.4 项目,并且我正在使用以下捆绑包:
jms/i18n-routing-bundle
friendsofsymfony/jsrouting-bundle:2.5.4
当我尝试使用
fos.Router.generate()
函数生成路线时,路线未按预期生成。它们带有特定于区域设置的前缀,例如 tr__RG__
或 en__RG__
。
例如,这是来自
fos.Router.setData()
的条目:
fos.Router.setData({
"base_url": "/my-route",
"routes": {
"tr__RG__phone_services_ivr_request_listener": { ... }
}
});
为了生成 FOS 路由 JavaScript 文件,我使用了以下命令:
php bin/console fos:js-routing:dump --target=public/static/js/fos_routing.js
这是我的 jms_i18n_routing.yaml 配置:
jms_i18n_routing:
default_locale: '%env(LOCALE)%'
locales: ['%env(LOCALE_TR)%', '%env(LOCALE_EN)%']
strategy: custom
redirect_to_host: false
在控制台中,我收到如下错误:
router.min.js:1 Uncaught (in promise) Error: The route "search" does not exist.
以下是一些屏幕截图以了解更多背景信息:
FOS路由路线:
context_:
base_url: ""
host: ""
locale: ""
port: ""
prefix: ""
scheme: ""
[[Prototype]]: Object
routes_:
[[Prototype]]: Object
[[Prototype]]: Object
控制台异常:
下面的错误是搜索路线的示例,我在它尝试生成的所有其他路线上都遇到相同的错误
router.min.js:1 Uncaught (in promise) Error: The route "search" does not exist.
我希望生成的路由没有任何特定于区域设置的前缀(例如,
tr__RG__
或en__RG__
),并且应该可以通过fos.Router.generate()
函数访问它们,没有问题。
任何人都可以帮助我理解为什么使用这些前缀生成路由以及如何删除或修复它们以正常工作
fos.Router.generate()
?
jms/i18n-routing-bundle
自 2021 年以来没有发布任何更改,因此您不妨将其视为未维护或废弃。
也许 Symfony 开箱即用地支持您需要的功能? 本地化路线(i18n)