无法覆盖 SonataUserBundle 中的序列化程序配置以隐藏属性
Cannot override serializer config in SonataUserBundle to hide properties
我正在使用 SonataUserBundle 和 JMSSerializerBundle,我想隐藏序列化对象的令牌和其他属性。
我想在 SonataUserBundle 中加载的文件是 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个文件。
型号.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.
任何帮助将不胜感激。
首先,我认为您不需要自动检测,因为您还指定了目录。那么你在 sonata 目录路径中有几个拼写错误:
jms_serializer:
metadata:
directories:
- { path: %kernel.root_dir%/Resources/SonataUserBundle/serializer, namespace_prefix: 'Sonata\UserBundle' }
我正在使用 SonataUserBundle 和 JMSSerializerBundle,我想隐藏序列化对象的令牌和其他属性。
我想在 SonataUserBundle 中加载的文件是 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个文件。
型号.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.
任何帮助将不胜感激。
首先,我认为您不需要自动检测,因为您还指定了目录。那么你在 sonata 目录路径中有几个拼写错误:
jms_serializer:
metadata:
directories:
- { path: %kernel.root_dir%/Resources/SonataUserBundle/serializer, namespace_prefix: 'Sonata\UserBundle' }