2013-11-15 29 views
0

正如標題所示,我將Symfony與JMSTranslationBundleJMSI18nBundle一起使用以便爲翻譯後的路線提供服務。具有多個參數的翻譯Symfony路線

這是我目前配置的路由: /{location}/{profession}/{specialty}

所以

/berlin/arzt/allgemein

成功地推到了正確的控制器和行動路線。

JMSI18nBundle自動爲我的英文路徑加上/ en /。這適用於具有非動態組件的其他每條路線(例如/profile/{slug}/)。但是,使用上述示例的英文版本時,這不起作用。即

/en/berlin/doctor/general

我猜路由器不能正常閱讀此爲英文版本的正常路線,而是試圖指定位置= EN,職業=柏林,等等,這顯然是不正確。

我試着爲翻譯定義可選參數,更復雜的正則表達式和尾部斜線(所有內容之間都有緩存刷新)。這些都不起作用。什麼工作,插入一個毫無意義的非動態組件,即/en/s/berlin/doctor/general

作爲業務需求的一部分,我們不希望這個額外的毫無意義的非動態URL組件。

因此,我的問題是:我如何在Symfony中使用(前綴)可翻譯網址,其中只包含動態字段?

非常感謝您的幫助!

回答

0

解決:

如同週五下午問題的標準,我發現我有一個$我的翻譯途徑規則裏面,像這樣:

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

刪除它,並清空緩存導致該路線工作。

tl; dr - PEBKAC