我正在使用Symfony 3,FosRestBundle和JsmSerializerBundle。
我想在我的json响应中添加实体名称。
例:
{
'user':
{
'id': 0
'firstName': 'John',
'lastName': 'Doe',
'posts': [
{
'id': 0,
'name': 'post name #1'
},
{
'id': 1,
'name': 'post name #2'
},
]
}
}
'user'是实体用户并发布实体Post。
构建我的json的最佳方法是什么?
答案 0 :(得分:0)
首先,您的json无效“帖子”可以是对象{}
而不是数组[]
,并且不允许使用重复的密钥“post”。
为了获得每个实体的类型,可以为每个实体添加一个属性。
/**
* @var string
* @Serializer\Expose()
*/
private $entityType = 'user';
......你的json看起来像:
{
"id": 0,
"entityType": "user",
"firstName": "John",
"lastName": "Doe",
"posts": [
{
"id": 0,
"entityType": "post",
"name": "post name #1"
},
{
"id": 1,
"entityType": "post",
"name": "post name #2"
}
]
}
Edit1:创建一个包装实体的响应对象
class GetUserResponse
{
/**
* @var User
* @Serializer\Expose()
* @Serializer\SerializedName(name="user")
*/
protected $user;
}
应该返回
{
'user':
//....
}