使用Symfony2中的动态前缀自定义根路径

时间:2013-01-16 18:31:44

标签: php symfony

我已经使用Symfony2框架完成了一个应用程序。

当前在应用程序中的生根就是这样:

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/

我发现周围有可能使用Service和ExtraLoader类来完成它,但我真的不知道如何完成它。

1 个答案:

答案 0 :(得分: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)方法。在视图中,您可以使用twig从每个链接传递正确的前缀:

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