Исправить круговую ссылку в symfony при использовании SerializerInterface

Вы правы в предположении, что дополнительный вызов конструктора копирования происходит из внутренней реструктуризации вектора.

Подробнее см. в этом ответе: https://stackoverflow.com/a / 10368636/3708904

Или этот ответ по причине необходимости создания копии: https://stackoverflow.com/a/11166959/3708904

0
задан Sam Cutler 13 July 2018 в 14:52
поделиться

2 ответа

Вы полностью можете. Просто добавьте это в свой конфигурационный файл.

framework:
    serializer:
        circular_reference_handler: App\Serializer\MyCustomCircularReferenceHandler

Этот обработчик будет работать глобально. Убедитесь, что вы зарегистрировали его как услугу. Мне не нужно реализовывать какой-либо интерфейс. Так что достаточно класса с __invoke(). Этот вызов получит объект, который является «окружным референсом» как единственный аргумент.

Вы можете либо вернуть id, либо сделать действительно классные вещи, например, создать uri для ресурса. Но детали реализации полностью зависят от вас, если вы не вернете один и тот же объект, все будет хорошо.

:)

1
ответ дан Matías Navarro Carter 17 August 2018 в 12:34
поделиться

В соответствии с API-интерфейсом Symfony API на интерфейсе не существует способа выполнить эту функцию или получить нормализатор.

Даже в Сериализатор не ищет способ получить нормализатор после создания сериализатора.

Лучше всего создавать нормализатор перед сериализатором для достижения этого, вместо того, чтобы вводить интерфейс через файлы конфигурации. ( Ссылка на соответствующие документы )

0
ответ дан King Graham 17 August 2018 в 12:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: