0

我想为 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'));

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

4

2 回答 2

0

Router::generateUrl需要一个路由名称,没有路由路径。因此,如果您想链接到home您向我们展示的路线,请使用:

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

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

于 2013-05-24T13:23:23.057 回答
0

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

/**
 * @Route("home", name="admin/home")
 */
于 2013-05-24T13:23:52.507 回答