Как можно задать разные группы атрибутов для сериализации дочерних объектов?

User - сущность с древовидной иерархией через поле parent ("родитель"). Легаси проект, сущность раздута и вот-вот лопнет полей тащит очень много.

Используем JMS\Serializer

Можно ли как-то сделать получение, например, почти-всех (группа1) полей о запрошенном юзере, но использовать другую группу2 атрибутов, заметно урезанную, для всех прочих в цепочке родителей – т.е. для всех в цепочке родителей тащить только пару определённых полей, игнорирую прочую мишуру?

Чтобы это работало и когда в другой сущности есть ссылка на User – "основной" с группой1, подробно. А всего его предки лишь с парой полей.
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
sergiks
@sergiks Автор вопроса
♬♬
В общем, разобрался: очень похожий пример нашёлся в документации: Overriding Groups of Deeper Branches of the Graph

Вкратце, нужно передать в контекст сериализатора массив с именами групп. Массив с вложенными под-массивами, описывающими, соотв. очередные уровни под-объектов. Для примера:
$groups = [
    'detailed',
    'parent' => [
        'short',
        'parent' => [
            'short',
            'parent' => [
                'short',
            ],
        ],
    ],
];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы