JMSSerializerBundle - 仅序列化学说关系中的 ID

JMSSerializerBundle - only serialize ID in doctrine relation

例如,假设我有两个实体,ArticleComment,评论通过单向 manyToOne 关系映射到文章。我想知道的是,如果可以序列化关系,但是在mappedOne中,只序列化ID。

例如,如果我序列化一篇 文章,我将得到它的完整 json 表示(包括 id、标题、内容...)。

{"title":"article title", "content":"article content", "id":"7"}

但是如果我序列化一个 评论,我希望它有一个完整的 json 自身的表示,但是在 文章 字段,我只想要文章id。

{"id":"2", "author":"foo","content":"comment content","linked_article":{"id":"7"}}

非常感谢!

在控制器操作 (getCommentAction) 中,注释中是否有序列化程序组?

我认为通过将此注释放在控制器操作上

@Rest\View(serializerGroups={"id","comment"}

并在您的 Article 实体中放置

/**
 * @JMS\Serializer\Annotation\Groups({"id", "article"})
*/
protected $id;

应该可以。