Как добавить атрибут в сериализованный объект? - PullRequest
0 голосов
/ 12 января 2020

Я хочу добавить атрибут в каждую сериализатор-группу этого объекта.

Пример:

class User {
  /**
  * @Groups({"userlist", "profile"})
  */
  protected $username;

  /**
  * @Groups({"profile"})
  */
  protected $name;

  /**
  * This should add to every serialization of this object
  */
  public function getRandomNumber() {
    return rand();
  }
}

Вывод для userlist: {"username":"nickname", "random_number":54}

Вывод для profile: {"username":"nickname", "name":"Bob", "random_number":54}

Вывод для special: {"random_number":54}

Важно то, что я не знаю всех групп сериализаторов для этого объекта.

1 Ответ

1 голос
/ 13 января 2020

Просто добавьте аннотацию @Groups({"userlist", "profile"}) к своему методу, например

   /**
    * @Groups({"userlist", "profile"})
    */
   public function getRandomNumber() 
   {
       return rand();
   }

, или вы можете создать свой пользовательский нормализатор только для User сущности

...