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

时间:2012-07-25 06:52:16

标签: php symfony

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

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

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

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

4 个答案:

答案 0 :(得分:15)

试试这个

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

或使用注释

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

答案 1 :(得分:6)

routing.yml

中使用此功能
Admin:
    resource: "@AdminBundle/Controller"
    type: annotation
    prefix: /admin

答案 2 :(得分:4)

只需定义类的注释(不适用于方法)

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

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

答案 3 :(得分:2)

例如,如果要为特定控制器DevController添加前缀,请执行以下操作:

myproject.com/dev/test

在Controller中

添加以下Route注释,如例:

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

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

        return new Response();
    }
....