2013-05-14 79 views
1

如果我有一批看起來像這樣的路線:如何設置會話的默認路由參數?

/{location}/catalog 
/{location}/search 

會議始終具有「位置」屬性(別名爲自動識別的用戶的位置,如城市)。因此,要生成具有{位置}參數的每條路線,我需要做

{ location: session.get('location') } 

是否有任何方法可以自動執行此操作?我可以重寫默認的UrlGenerator並將@session注入它嗎?

+0

我有與枝條一起使用的解決方案。我通過注入「會話」和「路由器」來定義一個樹枝擴展,並創建具有合併參數的自定義「location_path」函數。但我必須在所有模板中替換path(),而不是我認爲的最佳解決方案。 – gridsane 2013-05-14 12:43:56

回答

0

嘗試覆蓋RoutingExtension類/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Extension/CodeExtension.php Symfony 2.1 Extending Core Classes

而且你可以叉https://github.com/symfony/TwigBridge,並與作曲家用它http://getcomposer.org/doc/05-repositories.md#vcs

+0

謝謝!要傷心,但似乎唯一的辦法就是分叉TwigBridge(不可能向RoutingExtension注入額外的服務,我只能指定一個類)。所以我更喜歡替換所有的路徑函數。這將更容易支持。 – gridsane 2013-05-20 07:13:24

相關問題