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