如何在Symfony2中为所有控制器添加一些路由前缀


How can I add some route prefix to all controllers in Symfony2?

我正在使用注释来定义控制器中的路由,我有15个控制器。全部由/path1/path2执行。

有没有办法在所有这些控制器中,我可以通过/admin/path1/admin/path2访问它们?

我不想通过更改每个文件来输入。

我可以在一个地方做吗?我的意思是,整个束应该通过/admin打开,然后打开它们各自的路径。

尝试这个

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

或者如果使用注释

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

routing.yml:中使用此选项

Admin:
    resource: "@AdminBundle/Controller"
    type: annotation
    prefix: /admin

只需为您的类(而不是方法)定义注释

/**
* @Route("/blog")
*/

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html#route-前缀

如果你想给特定的控制器DevController加前缀,比如:

myproject.com/dev/test

在控制器中添加以下路线注释,如示例所示:

    /**
 * @Route("/dev")
 */
class DevController extends Controller{
    /**
     * @Route("/test")
     */
    public function testSavingAction(){
        return new Response();
    }
....