Как добавить вычисляемое свойство в ответ Symfony API Platform? - PullRequest
1 голос
/ 09 июля 2019

Мне нужно вычислить свойство значения и добавить его в ответ платформы API.

У меня есть этот объект:

"project": {
    "@id": "/api/projects/1",
    "@type": "Projects",
    "id": 1,
    "name": "UI/UX",
    "beginDatetime": 1562662050,
    "maxHours": 8,
    "isActive": true,
  }

И мне нужен этот объект:

"project": {
    "@id": "/api/projects/1",
    "@type": "Projects",
    "id": 1,
    "name": "UI/UX",
    "estEndDatetime": 1562662050 + (8*3600), // Autocalculated value
    "maxHours": 8,
    "isActive": true,
  }

Я использую Symfony 4 с платформой API

1 Ответ

0 голосов
/ 09 июля 2019

Вы можете создать метод получения и добавить к нему аннотацию @Groups. Например:

/**
 * @Groups({"your_group_name_here"})
 */
public function getEstEndDatetime(): DateTimeInterface
{
    return $this->getBeginDatetime()->modify('+ ' . ($this->getMaxHours() * 3600) . ' seconds');
}

Обратите внимание, что при этом, если дата является изменяемой, она будет изменена. Так что для свойства beginDateTime будет лучше использовать неизменяемую дату.

...