2013-01-16 34 views
1

我有一個已經用Symfony2框架完成的應用程序。使用Symfony2中的動態前綴自定義根路徑

在app樂一樣,目前生根:

http://testserver.loca.com/app_dev.php/Dashboard/ 

我想添加一個動態的前綴,這樣的:

http://testserver.loca.com/app_dev.php/Prefix/Dashboard/ 

動態前綴將被用戶選擇時,他點擊將直接發送給特定頁面的鏈接,該列表將如下所示:

http://testserver.loca.com/app_dev.php/Prefix1/Dashboard/ 
http://testserver.loca.com/app_dev.php/Prefix2/Dashboard/ 
http://testserver.loca.com/app_dev.php/Prefix3/Dashboard/ 

我發現周圍有可能通過服務和ExtraLoader類來完成它,但我不知道如何完成這件事。

回答

1

您可以處理前綴的路由:

/** 
* @Route("{prefix}/Dashboard", name="dynamic_dashboard") 
* @Template() 
*/ 
public function dynamicDashboardAction($prefix) 
{ 
    // Some way of deciding what to do based on prefix 
    switch($prefix){ 
     case 'Prefix1': 
      // Do stuff for prefix1 etc 
     break; 
     // etc 
    } 
} 

在上面,路由具有用於傳遞給dynamicDashboardAction($prefix)方法前綴的佔位符。在視圖中,您可以使用樹枝從每個鏈接傳遞正確的前綴:

<a href={{ path("dynamic_dashboard", {"prefix": "Prefix1"}) }}">Dashboard 1</a> 
<a href={{ path("dynamic_dashboard", {"prefix": "Prefix2"}) }}">Dashboard 2</a>