2011-10-06 16 views
0

我有一個插件,我需要根據查詢字符串中的變量加載不同的routing.yml文件。symfon 1.4根據插件內的url參數加載不同的routing.yml

例子:

if($request->getParameter('page'){ 
// use routingPage.yml 
} 
else{ 
// use another routing.yml 
} 

所以,如果URL中的頁面參數url_for( '@ ROUTE1'),會返回一個網址,其他人同樣的url_for( '@ ROUTE1')將返回其他網址。

如何覆蓋rouing.yml加載機制來做我想做的事?

+0

我構建了一個可以爲Symfony 1.4項目執行此操作的系統,但它非常複雜。我最終不得不重做Symfony的路由配置處理程序,從頂部到底部;它只是沒有被設計爲以這種方式被覆蓋。如果有一種簡單的方法來完成你所需要的,我會建議你去做。 – 2012-01-04 21:59:57

回答

0

每個應用程序只能有一個routing.yml(當然它可以被其他插件覆蓋)。

這樣做的原因很簡單:如果你想使用多路由文件(比如routing1.ymlrouting2.yml),並且它們都具有一個名爲route1路線,分別重定向到controller1/actioncontroller2/action。 也許你可以在視圖中切換它,並在另一種情況下轉到controller1/action,在另一種情況下轉到controller2/action。但隨後:當新請求到達時,前端控制器正在確定要執行哪個控制器/操作:現在如何使用哪個routing.yml

所以我不知道你想要達到什麼目的,但我會選擇routing.yml中的兩條路線,然後根據你的視圖參數選擇路線。

相關問題