Как я могу сериализовать объект в api sylius rest?

На данный момент у меня есть объект, у которого есть поле типа зоны, но когда я его сериализую, он возвращает мне следующее:

[..,
"zone": {
       "__initializer__": {},
       "__cloner__": {},
       "__isInitialized__": false
     },
..,
]

1 ответ

Решение

Это потому, что "зоны" - это неинициализированная ленивая коллекция Doctrine, что означает, что в ней нет данных. Чтобы заполнить его данными, вы должны либо явно получить связанные объекты из базы данных, либо добавить активную выборку в конфигурацию ассоциации, либо отложить ее, вызвав метод получения перед сериализацией.

Например, если у вас есть метод репозитория с построителем запросов, вы можете добавить этот код для получения зон:

        $this->createQueryBuilder('o')
            ->addSelect('zone')
            ->join('o.zones', 'zone')
Другие вопросы по тегам