根据与 Serializer 的关系序列化选定的属性

Serialize selected properties on relationship with Serializer

我有两个学说实体:

/**
 * @ORM\Table()
 */
class User {
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string" ,nullable=false)
     */
    private $name;

    /**
     * @var ArrayCollection
     *
     * @ORM\ManyToMany(targetEntity="Post")
     */
    private $posts;
}
 
/**
 * @ORM\Table()
 */
class Post {
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(type="string" ,nullable=false)
     */
    private $content;
}

使用 Serializer 组件时,可以只为 User?

的帖子 属性 中的每个实体序列化 id 属性

例如:

{
    "id": 79,
    "name": "User 1",
    "post": [
      {
        "id": 73,
      }
    ],
}

是的,您可以忽略序列化中的其他属性。

参见:Ignoring Attributes(序列化程序组件文档)

Post:
    attributes:
        content:
            ignore: true

我给了你一个 YAML 示例,因为我不知道你使用什么格式来定义序列化。