symfony 如何在具有平台API组的Trait中使用Timestampable

7fhtutme  于 2023-11-22  发布在  其他
关注(0)|答案(1)|浏览(146)

现在我有很多实体:

  1. #[ORM\Column(type: 'datetime')]
  2. #[Groups(['article_category:output'])]
  3. /**
  4. * @Timestampable(on="create")
  5. */
  6. private \DateTime $createdAt;
  7. public function getCreatedAt(): \DateTime
  8. {
  9. return $this->createdAt;
  10. }

字符串
我想把它放在Trait里面。但是每个实体都有自己的标准化组(比如'article_category:output')。我如何让这个字段在API平台上总是可用?

zwghvu4y

zwghvu4y1#

我们所做的:
在你的特质中使用一个组,例如timestampable

  1. trait TimestampableEntity
  2. {
  3. /**
  4. * ...
  5. * @Groups({"timestampable"})
  6. */
  7. protected $createdAt;
  8. ...
  9. }

字符串
然后,每当你想公开时间戳时,将它们添加到你的配置中(你可以向一个操作添加多个组)

  1. <?php
  2. /**
  3. * @ApiResource(
  4. * collectionOperations= {
  5. * "get" = {
  6. * "normalization_context"={"groups"={"appointment:read", "timestampable"}},
  7. * },
  8. * },
  9. * )
  10. */
  11. class Appointment
  12. {
  13. use TimestampableEntity;

展开查看全部

相关问题