2014-01-08 146 views
3

我有一个实体(项目),其具有多对一关系到另一个实体(型)序列化实体宣称这里:与协会

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

编辑

这是协会(S)样品序列化实体:

{ 
    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 
     } 
    ] 
} 

回答

1

您必须将exludePolicy用于实体Type@ExclusionPolicy('all')并将@Expose添加到id属性。

看到的文档http://jmsyst.com/libs/serializer/master/reference/annotations

希望它有助于

最好的方面。

+0

这就是我所做的,实际上我在课前加入了@ExclusionPolicy('all')'。但我需要另一个控制器上的其他属性,但只是没有任何关联的(Type)实体,我需要排除实体上的其他属性,除id之外的关联 – user1076813