【问题标题】:How to serialize an entity in Symfony2 with dependent objects如何用依赖对象序列化 Symfony2 中的实体
【发布时间】:2013-07-04 09:21:37
【问题描述】:

我有一个 Product 实体和一个 ProductList 实体。

是否可以以 json 包含与该 ProductList 相关的 Product 对象的方式将 ProductList 对象序列化(和反序列化)为 json?

预期的输出是:

[{
    'product_list_name': 'List',
    'product_list_created': '2013-07-04',
    'products' : {
        'product': {...},
        'product': {...},
        'product': {...},
        'product': {...}
}] 

我正在使用 Symfony2 内置的序列化程序和 JMS\Serializer,但我没有任何运气。

有什么办法吗?

【问题讨论】:

  • 你想像这样序列化一个实体集合吗? : [{ 'product_list': { 'product': {...}, 'product': {...}, 'product': {...} }]
  • 你能用你的配置添加你的实体吗(注解/yml/xml)——它们实际上是通过关系链接的吗?我正在使用 JMSSerializer,它对我来说工作正常
  • @Ren 有点像。 [{'product_list_name': 'List', 'product_list_created': '2013-07-04', 'products' {'product': {...}, 'product': {...}, 'product': {...}, '产品': {...} }]
  • @ManseUK 这样做不是为了节省空间,它们之间的链接很好,多对多关系,我加载夹具并创建列表、添加产品等,没问题。序列化让我很困扰。
  • 好吧,在你的 ProductList 类上尝试将 XmlList 注释添加到他的 Product 属性中,看这里jmsyst.com/libs/serializer/master/reference/annotations#xmllist,还添加一个 XmlRoot 注释来告诉 ProductList 是父对象。

标签: symfony serialization deserialization jmsserializerbundle jms-serializer


【解决方案1】:

如果您使用的是 YML,请确保您拥有 Product 和 ProductList 的 YML 文件。

Entity.ProductList.yml

AppBundle\Entity\ProductList:
    exclusion_policy: ALL
    properties:
        products:
            expose: true

Entity.Product.yml

AppBundle\Entity\Product:
    exclusion_policy: ALL
    properties:
        id:
            expose: true

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 2016-07-09
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    相关资源
    最近更新 更多