序列化实体仅显示ID

时间:2015-05-21 10:17:53

标签: symfony fosrestbundle jmsserializerbundle jms-serializer

我正在使用JMSSerializer和FOSRestBundle。我有一个相当典型的对象图,包括一些递归。

我想要实现的是,超出一定深度或一般情况下包含的对象仅列出其ID,但直接序列化时列出所有数据。

所以,例如: 用户=>群组=>用户

请求/ user / 1时,结果应该是

{ "id": 1, "name": "John Doe", "groups": [ { "id": 10 }, { "id": 11 } ] }

当我请求/ group / 10时,它将是:

{ "id": 10, "name": "Groupies", "users": [ { "id": 1 }, { "id": 2 }, { "id": 4 } ] }

使用@MaxDeph我可以完全隐藏包含的数组,所以我得到了     {" id":1," name":" John Doe"," groups":[]}

但我想只包含ID,以便REST客户端可以在需要时获取它们,或咨询他的缓存,或者做任何事情。

我知道我可以使用组手动拼凑这些,但出于一致性的原因,我想知道我是否可以在整个应用程序中以某种方式启用此行为,甚至可以引用maxdepth,以便我可以控制在哪里包含ID以及在哪里包括完整的对象?

1 个答案:

答案 0 :(得分:0)

为了那些发现这个的人:

我没有找到其他解决方案,但是使用群组这样做可以很好地为我提供我想要的结果。