【问题标题】:Serialize selected properties on relationship with Serializer根据与 Serializer 的关系序列化选定的属性
【发布时间】:2022-01-18 03:55:46
【问题描述】:

我有两个学说实体:

/**
 * @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的posts属性中的每个实体序列化id属性?

例如:

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

【问题讨论】:

    标签: php symfony serialization doctrine


    【解决方案1】:

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

    请参阅:Ignoring Attributes(序列化器组件文档)

    Post:
        attributes:
            content:
                ignore: true
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多