【发布时间】:2019-08-01 08:47:50
【问题描述】:
我在我的项目中使用 symfony/serializer,并希望返回子实体的唯一 ID。例如我有订单和用户这两个实体。 当我获取订单并返回结果时,我只想要用户的 ID。我已经设法通过使用@Groups 来做到这一点,但是如果我有另一个需要所有详细信息的请求,为类中的每个属性添加一个组感觉需要做很多工作。
/**
* Order
*
* @ORM\Table(name="orders")
* @ORM\Entity
*/
class Order
{
/**
* @var int
*
* @ORM\Column(name="Id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var Users
* @ORM\ManyToOne(targetEntity="Users")
* @ORM\JoinColumn(name="UID", referencedColumnName="UID", nullable=false)
*/
private $user;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return Users
*/
public function getUser(): Users
{
return $this->user;
}
/**
* @param Users $user
* @return Order
*/
public function setUser(Users $user): Order
{
$this->user = $user;
return $this;
}
}
/**
* Users
*
* @ORM\Table(name="users")
* @ORM\Entity
*/
class Users
{
/**
* @var int
*
* @ORM\Column(name="UID", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $UID;
/**
* @var string
*
* @ORM\Column(name="FirstName", type="encrypted", length=255, nullable=false)
*/
private $FirstName;
public function getUID(): ?int
{
return $this->UID;
}
public function getFirstName(): ?string
{
return $this->FirstName;
}
public function setFirstName(string $FirstName): self
{
$this->FirstName = $FirstName;
return $this;
}
}
【问题讨论】:
-
如果你使用 JMSSerializerBundle 你可以检查虚拟属性
标签: symfony doctrine serialization