我有一个实体(项目),它与此处声明的另一个实体(类型)具有多对一关系:
/**
* @ORMManyToOne(targetEntity="Type", inversedBy="item")
* @ORMJoinColumn(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"
},
我已经阅读了文档并使用组和最大深度进行了测试,但没有运气,并浏览了我遇到的问题: 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 序列化程序,因为它是一个很棒的库:)
{
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
}
]
}
实体Type
@ExclusionPolicy('all')
使用 exludePolicy 并将@Expose
添加到 id
属性。
请参阅文档 http://jmsyst.com/libs/serializer/master/reference/annotations
希望对您有所帮助
最好的问候。