我有一个实体(Item)与这里声明的另一个实体(Type)有多对一的关系:
/**
* @ORM\ManyToOne(targetEntity="Type", inversedBy="item")
* @ORM\JoinColumn(name="type_id", referencedColumnName="id", nullable=true)
* @Expose
*/
protected $itemType;
当我序列化项目时,它包含引用实体(类型)上的其他属性,当我想要的只是ID时:
item_type: {
id: 1
},
而不是:
item_type: {
id: 1,
name: "Case & Cover",
description: "Keep your phone safe with stylish cases and covers"
},
我已阅读文档并使用群组和maxdepths进行测试但没有运气,并浏览我遇到的问题: https://github.com/schmittjoh/JMSSerializerBundle/issues/61#issuecomment-3297955
是否已包含此功能?
使用"jms/serializer-bundle": "dev-master"
修改
这是带有关联的样本序列化实体:
{
id: 1,
name: "iPhone 5c Slim Genuine Leather Portfolio Case with Stand - Classic Black",
price: 29.95,
description: "...",
image: "1.jpg",
item_type: {
id: 1,
name: "Case & Cover"
},
item_brand: [
{
id: 1,
name: "Apple"
}
]
}
我真正想要的是这个(没有关联实体的任何额外属性):(使用JMS Serializer,因为它是一个很棒的库:))
{
id: 1,
name: "iPhone 5c Slim Genuine Leather Portfolio Case with Stand - Classic Black",
price: 29.95,
description: "...",
image: "1.jpg",
item_type: {
id: 1
},
item_brand: [
{
id: 1
}
]
}
答案 0 :(得分:1)
您必须对实体Type
@ExclusionPolicy('all')
使用exludePolicy,并将@Expose
添加到id
属性。
请参阅文档http://jmsyst.com/libs/serializer/master/reference/annotations
希望它有用
最好的关注。