我遇到了JMSSerializerBundle和我的FOSUserbundle覆盖实体的问题。
我使用JMSSerializerBundle来序列化我的实体,使用FosRestBundle来制作API。我自己的实体没有问题,但当我试图从FosUserBundle序列化我的用户实体时,它不能按照我想要的方式工作。
我想只公开FOSUserbundle给出的User实体的用户名,并显示我自己实体的一些属性(被覆盖)。
当我将此配置设置为配置文件时,将忽略YML文件。
jms_serializer:
metadata:
auto_detection: true
directories:
- { path: @bwbUserBundle/Resources/config/serializer, namespace_prefix: 'FOS\UserBundle' }
我也试过这个synthaxe:
jms_serializer:
metadata:
auto_detection: true
directories:
FOSUserBundle:
namespace_prefix: FOS\UserBundle
path: "@bwbUserBundle/Resources/config/serializer"
我的Model.User.yml
包含在@bwbUserBundle/Resources/config/serializer
目录
FOS\UserBundle\Model\User:
exclusion_policy: ALL
# add your desired configuration below.
当我使用FosRestBundle返回User对象时。它返回所有实体属性。
{
"id": 1,
"username": "******",
"username_canonical": "******",
"email": "******@******",
"email_canonical": "******@******",
"enabled": true,
"salt": "******",
"password": "******",
"last_login": "******",
"locked": false,
"expired": false,
"roles": [
"******",
"******",
"******",
"******",
"******",
"******",
"******"
],
"credentials_expired": false
}
感谢您的帮助。
我为自己的英语道歉,我努力做得更好:)
答案 0 :(得分:0)
在Symfony上进行了测试4.尝试在Entity.User.yml
中创建具有以下内容的/config/serializer/Entity.User.yml
:
App\Entity\User:
exclusion_policy: ALL
properties:
id:
expose: true
username:
expose: true