我该如何在Symfony2中为所有控制器添加路由前缀?

8
我正在使用注释在控制器中定义路由,我有15个控制器。所有这些控制器都由/path1/path2执行。
是否有方法可以在所有这些控制器中,通过/admin/path1/admin/path2访问它们?
我不想通过更改每个文件来实现此目的。
我能否从单个位置完成?我的意思是整个捆绑包应该通过/admin打开,然后其各自的路径。
4个回答

15

试试这个

# app/config/routing.yml
acme_hello:
    resource: "@AcmeHelloBundle/Resources/config/routing.yml"
    prefix:   /admin

或者如果使用注解

resource: "@AcmeHelloBundle/Controller"
    type:     annotation
    prefix:   /admin

6
请在 routing.yml 中使用此代码:
Admin:
    resource: "@AdminBundle/Controller"
    type: annotation
    prefix: /admin

4

1
作者要求一种全局的方法。 - Elnur Abdurrakhimov
1
这种方法对我很有效,因为我希望它在特定的控制器上而不是整个包中。 - Mohammad AbuShady

2

如果您想为特定控制器(例如DevController)添加前缀,并且希望拥有以下类似的URL:

myproject.com/dev/test

请在您的控制器中添加以下路由注释,如下所示:

    /**
 * @Route("/dev")
 */
class DevController extends Controller{

    /**
     * @Route("/test")
     */
    public function testSavingAction(){

        return new Response();
    }
....

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接