如何覆盖FOSRestBundle symfony中cetain URL的body_侦听器:数组_规范化器

如何覆盖FOSRestBundle symfony中cetain URL的body_侦听器:数组_规范化器,symfony,fosrestbundle,Symfony,Fosrestbundle,我正在使用这个配置 fos_rest: param_fetcher_listener: true body_listener: array_normalizer: fos_rest.normalizer.camel_keys 它工作良好,有助于将客户端请求参数转换为表单/对象属性 但在某些情况下,我不使用表单,我希望用下划线分隔参数。我不想上述设置被应用到一些网址 如何在每个路由的基础上覆盖(禁用)上述设置(注释或url模式的某些规则最好)。如果您同意根据某些u

我正在使用这个配置

fos_rest:
    param_fetcher_listener: true
    body_listener:
        array_normalizer: fos_rest.normalizer.camel_keys
它工作良好,有助于将客户端请求参数转换为表单/对象属性

但在某些情况下,我不使用表单,我希望用下划线分隔参数。我不想上述设置被应用到一些网址


如何在每个路由的基础上覆盖(禁用)上述设置(注释或url模式的某些规则最好)。

如果您同意根据某些url禁用/启用所有fos/rest捆绑包侦听器,则可以使用
区域
功能(从2.0版本开始)

文件:


如果您有更多的时间,也许您可以帮助改进该功能-这是一个很好的RFC-

我的解决方案如何?你已经解决了你的问题吗?嗨,zone功能听起来很有趣,但是我已经通过实现自定义数组规范化器解决了这个问题,它可以排除url模式。我将在我的问题中发布代码。
fos_rest:
    zone:
        - { path: ^/route/with/listeners/enabled/* }