Вы полностью можете. Просто добавьте это в свой конфигурационный файл.
framework:
serializer:
circular_reference_handler: App\Serializer\MyCustomCircularReferenceHandler
Этот обработчик будет работать глобально. Убедитесь, что вы зарегистрировали его как услугу. Мне не нужно реализовывать какой-либо интерфейс. Так что достаточно класса с __invoke()
. Этот вызов получит объект, который является «окружным референсом» как единственный аргумент.
Вы можете либо вернуть id, либо сделать действительно классные вещи, например, создать uri для ресурса. Но детали реализации полностью зависят от вас, если вы не вернете один и тот же объект, все будет хорошо.
:)