全局捆绑的路由前缀

时间:2013-05-24 13:13:16

标签: php symfony

我想为AdminBundle中的所有控制器设置前缀 - “/ admin”。所以我在routing.yml文件中做到了:

my_admin:
   prefix: /admin

然后我从:

更改了所有管理包的路由名称
/**
 * @Route("admin/home", name="admin/home")
 */

/**
 * @Route("home", name="home")
 */

问题在于我使用时:

return $this->redirect($this->generateUrl('admin/installation'));

它会抛出路由不存在的异常...在设置它工作的前缀之前。怎么了?

2 个答案:

答案 0 :(得分:0)

Router::generateUrl预计路线名称,无路线路径。因此,如果您想要链接到您向我们展示的home路线,请使用:

return $this->redirect($this->generateUrl('home'));

prefix选项是关于路线路径,而不是路线的名称

答案 1 :(得分:0)

这是因为你没有名为admin / installation的路由。即使您有整个控制器的前缀,您也必须为每条路径指定唯一的名称。

/**
 * @Route("home", name="admin/home")
 */