Symfony全局和特定前缀控制器操作

时间:2016-01-07 10:23:18

标签: php symfony

我的文件中有routing.yml为我的所有路由配置了一个prexif,如:

app:
    resource: "@AppBundle/Controller/"
    type:     annotation
    prefix:   /{_locale}
    requirements:
        _locale: en|fr|es

有了这个,对于我的所有控制器,我都有_locale前缀/en/buy/en/home ......

我有另一个控制器AjaxController,我不需要使用此前缀,而是另一个:ajax

如何为所有控制器保留全局前缀_locale,并为我的AjaxController使用另一个前缀?

谢谢!

1 个答案:

答案 0 :(得分:1)

在symfony路由中,声明的最后一个规则是路由器使用的规则。我没有测试它,但我猜这样的东西应该可以工作:

app:
    resource: "@AppBundle/Controller/"
    type:     annotation
    prefix:   /{_locale}
    requirements:
        _locale: en|fr|es

app_ajax:
    resource: "@AppBundle/Controller/AjaxController.php"
    type:     annotation
    prefix:   /ajax

再次,我没有尝试过!但我很确定它会起作用。 我一般不喜欢这种做法,因为它依赖于路由器的行为,可能会通过版本改变......