Как я могу сериализовать объект в api sylius rest?
На данный момент у меня есть объект, у которого есть поле типа зоны, но когда я его сериализую, он возвращает мне следующее:
[..,
"zone": {
"__initializer__": {},
"__cloner__": {},
"__isInitialized__": false
},
..,
]
1 ответ
Решение
Это потому, что "зоны" - это неинициализированная ленивая коллекция Doctrine, что означает, что в ней нет данных. Чтобы заполнить его данными, вы должны либо явно получить связанные объекты из базы данных, либо добавить активную выборку в конфигурацию ассоциации, либо отложить ее, вызвав метод получения перед сериализацией.
Например, если у вас есть метод репозитория с построителем запросов, вы можете добавить этот код для получения зон:
$this->createQueryBuilder('o')
->addSelect('zone')
->join('o.zones', 'zone')