我想为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'));
它会抛出路由不存在的异常...在设置它工作的前缀之前。怎么了?
答案 0 :(得分:0)
Router::generateUrl
预计路线名称,无路线路径。因此,如果您想要链接到您向我们展示的home
路线,请使用:
return $this->redirect($this->generateUrl('home'));
prefix
选项是关于路线路径,而不是路线的名称。
答案 1 :(得分:0)
这是因为你没有名为admin / installation的路由。即使您有整个控制器的前缀,您也必须为每条路径指定唯一的名称。
/**
* @Route("home", name="admin/home")
*/