根据与 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 示例,因为我不知道你使用什么格式来定义序列化。
我有两个学说实体:
/**
* @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 示例,因为我不知道你使用什么格式来定义序列化。