1

我已经/admin为单个包中的所有路由设置了前缀,但我还想为这个包中的单个控制器设置一些全局前缀。所以如果我FooController创建了,我可以写:

@Route("/foomethod", name="/foomethod")

代替:

@Route("/FooController/foomethod", name="/FooControler/foomethod")

有没有办法做到这一点,这被认为是一种好的做法吗?

4

1 回答 1

1

是的,这实际上是解决 DRY 问题的好习惯(不要重复自己)。

您可以在控制器类上使用 @Route 注释指定所需的前缀,如下所示:

/**
 * @Route("/foocontroller")
 */
class FooController
{
    /**
     * @Route("/bar")
     */
     public function barAction()
     {
        // ... 
     }

    /**
     * @Route("/blub")
     */
     public function blubAction()
     {
        // ... 
     }

导致 barAction() 的/foocontroller/bar和 blubAction() 的/foocontroller/blub

于 2013-05-25T15:22:05.770 回答