symfony - 无法覆盖 SonataUserBundle 中的序列化器配置以隐藏属性

标签 symfony serialization sonata-user-bundle jms-serializer

我正在使用 SonataUserBundleJMSSerializerBundle,并且我想隐藏序列化对象的 token 和其他属性。

我想要在 SonataUserBundle 中 ovvride 的文件是 Resources/config/serializer/Model.User.xml

这是我的配置:

app/config.yml

jms_serializer: metadata: auto_detection: true directories: - { path: %kernel.root_dir%/Resources/SoantaUserBundle/serializer, namespace_prefix: 'Sonata\UserBundle' } - { path: %kernel.root_dir%/Resources/FOSUserBundle/serializer, namespace_prefix: 'FOS\UserBundle' }

app/Resources/SonataUserBundle/serializer中我尝试了2个文件。

Model.User.xml

<?xml version="1.0" encoding="UTF-8"?> <serializer> <class name="Sonata\UserBundle\Model\User" exclusion-policy="all" xml-root-name="user"> <property name="token" type="string" expose="false" since-version="1.0" groups="sonata_api_read,sonata_api_write,sonata_search" /> </class> </serializer>

模型.User.yml

Sonata\UserBundle\Model\User: exclusion_policy: ALL properties: token: expose: false

这两个文件似乎都不起作用。

我已成功隐藏FOSUserBundle中的一些属性,但似乎在隐藏与SonataUserBundle相关的属性时遇到了麻烦。我不确定它是否相关,但我想提一下,我正在使用HWIOauthBundle

任何帮助将不胜感激。

最佳答案

首先,我认为您不需要自动检测,因为您还指定了目录。那么奏鸣轨道录路径中有几个拼写错误:

jms_serializer:
    metadata:
        directories:
            - { path: %kernel.root_dir%/Resources/SonataUserBundle/serializer, namespace_prefix: 'Sonata\UserBundle' }

关于symfony - 无法覆盖 SonataUserBundle 中的序列化器配置以隐藏属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467525/

相关文章:

php - 如何在 Symfony2 中创建 IP 黑名单?

java - SerializationProxy 模式给出 ClassCastException : How to avoid?

symfony - JmsSerializer 排除 SonataUser 的密码字段

Symfony2 : Custom Exception Listener not working on production env

include - 如何在 Symfony2 中找到包含的路径?

symfony - "mappings"下无法识别的选项 "fos_elastica.indexes.app.types.user"

java - 使Jackson在序列化时不输出类名(使用Spring MVC)

Java静态序列化规则?

symfony - 如何向 sonata 用户包注入(inject)不同的用户管理器