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

时间:2016-05-26 17:31:51

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

我正在使用 SonataUserBundle JMSSerializerBundle ,我想隐藏序列化对象的令牌和其他属性。

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

这是我的配置:

应用/ 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>

Model.User.yml

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

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

我设法隐藏了 FOSUserBundle 中的一些属性,但似乎我无法隐藏与 SonataUserBundle 相关的属性。我不确定它是否相关,但我想提一下我正在使用 HWIOauthBundle

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

首先,我不认为您需要自动检测,因为您还要指定目录。然后你在sonata目录路径中有一些拼写错误:

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