序列化具有关联的实体



我有一个实体(项目),它与此处声明的另一个实体(类型)具有多对一关系:

     /**
     * @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

希望对您有所帮助

最好的问候。

相关内容

  • 没有找到相关文章

最新更新