如何在具有平台 API 组的特征中使用时间戳
How to use Timestampable in a Trait with Platform API groups
现在我有很多实体:
#[ORM\Column(type: 'datetime')]
#[Groups(['article_category:output'])]
/**
* @Timestampable(on="create")
*/
private \DateTime $createdAt;
public function getCreatedAt(): \DateTime
{
return $this->createdAt;
}
我想把它放在 Trait 里面。
但是每个实体都有自己的规范化组(比如 'article_category:output')。
我怎样才能让这个字段在 API 平台上始终可用?
我们做了什么:
在你的特质中使用一个群体,例如timestampable
trait TimestampableEntity
{
/**
* ...
* @Groups({"timestampable"})
*/
protected $createdAt;
...
}
然后,每当您想公开时间戳时,将它们添加到您的配置中(您可以将多个组添加到一个操作中)
<?php
/**
* @ApiResource(
* collectionOperations= {
* "get" = {
* "normalization_context"={"groups"={"appointment:read", "timestampable"}},
* },
* },
* )
*/
class Appointment
{
use TimestampableEntity;
现在我有很多实体:
#[ORM\Column(type: 'datetime')]
#[Groups(['article_category:output'])]
/**
* @Timestampable(on="create")
*/
private \DateTime $createdAt;
public function getCreatedAt(): \DateTime
{
return $this->createdAt;
}
我想把它放在 Trait 里面。 但是每个实体都有自己的规范化组(比如 'article_category:output')。 我怎样才能让这个字段在 API 平台上始终可用?
我们做了什么:
在你的特质中使用一个群体,例如timestampable
trait TimestampableEntity
{
/**
* ...
* @Groups({"timestampable"})
*/
protected $createdAt;
...
}
然后,每当您想公开时间戳时,将它们添加到您的配置中(您可以将多个组添加到一个操作中)
<?php
/**
* @ApiResource(
* collectionOperations= {
* "get" = {
* "normalization_context"={"groups"={"appointment:read", "timestampable"}},
* },
* },
* )
*/
class Appointment
{
use TimestampableEntity;