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


Symfony global and specific prefix controller action

我的文件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使用另一个前缀?

谢谢!

在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

再一次,我没有尝试!但我很确定它会起作用的。一般来说,我真的不喜欢这种做法,因为它依赖于路由器的行为,而路由器的行为可能会随着版本的变化而变化…