我已经/admin
为单个包中的所有路由设置了前缀,但我还想为这个包中的单个控制器设置一些全局前缀。所以如果我FooController
创建了,我可以写:
@Route("/foomethod", name="/foomethod")
代替:
@Route("/FooController/foomethod", name="/FooControler/foomethod")
有没有办法做到这一点,这被认为是一种好的做法吗?
是的,这实际上是解决 DRY 问题的好习惯(不要重复自己)。
您可以在控制器类上使用 @Route 注释指定所需的前缀,如下所示:
/**
* @Route("/foocontroller")
*/
class FooController
{
/**
* @Route("/bar")
*/
public function barAction()
{
// ...
}
/**
* @Route("/blub")
*/
public function blubAction()
{
// ...
}
导致 barAction() 的/foocontroller/bar和 blubAction() 的/foocontroller/blub。