0

正如标题所示,我将 Symfony 与JMSTranslationBundleJMSI18nBundle结合使用,以提供翻译后的路由。

这是我当前配置的路线: /{location}/{profession}/{specialty}

所以路线

/berlin/arzt/allgemein

已成功推送到正确的控制器和操作。

JMSI18nBundle 会自动为我的英语路由添加 /en/ 前缀。这适用于具有非动态组件(例如/profile/{slug}/)的所有其他路由。但是,当使用上述示例的英文版本时,这不起作用。IE

/en/berlin/doctor/general

我猜路由器没有正确读取这个作为正常路由的英文版本,而是尝试分配 location = en、professional = berlin 等,这显然是不正确的。

我已经尝试为翻译定义可选参数、更复杂的正则表达式和斜杠(所有这些都带有缓存刷新)。这些都不起作用。什么工作,是插入一个毫无意义的非动态组件,即/en/s/berlin/doctor/general

作为业务需求的一部分,我们不想要这个额外的无意义的非动态 URL 组件。

所以,我的问题是:如何在 Symfony 中使用(前缀)可翻译的 URL,只包含动态字段?

非常感谢您的帮助!

4

1 回答 1

0

解决了:

与周五下午的问题一样,我发现我的翻译路线规则中有一个 $ ,如下所示:

/{location}/{$profession}/{specialty}

删除它并刷新缓存导致路由工作。

tl;博士-PEBKAC

于 2013-11-18T15:03:35.963 回答