2013-01-16 37 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>