Symfony Serializer с группами не работает - пустой вывод
Я пытаюсь сериализовать данные как JSON с помощью сериализатора Symfony по умолчанию.
Для этого я пытаюсь использовать
@Groups()
как описано здесь:
https://symfony.com/doc/current/serializer.html
После добавления
@Groups
аннотация, как показано ниже:
class User implements UserInterface
{
// ...
/**
* @ORM\OneToMany(targetEntity=PortfolioItem::class, mappedBy="user", orphanRemoval=true)
* @ORM\OrderBy({"id" = "DESC"})
* @Groups({"show_user"})
*/
private $portfolioItems;
}
На моем контроллере у меня есть следующее:
/**
* @param Request $request
* @return JsonResponse
* @Route("/async/portfolio/brands/get_chart", name="portfolio.brands.chart.data", options={"expose"=true}, methods={"POST", "GET"})
* @IsGranted("ROLE_USER")
*/
public function getDataForBrandsChart(Request $request): JsonResponse
{
$user = $this->getUser();
$portfolioItems = $user->getPortfolioItems();
$output = $this->serializer->serialize($portfolioItems, "json", ["groups" => "show_user"]);
return new JsonResponse($output, 200);
}
Это всегда дает следующий результат:[[]]
Почему всегда пусто?
Причина, по которой я использую группы, заключается в том, что без них у меня возникает следующая ошибка:
Обнаружена циклическая ссылка при сериализации объекта класса "App\Entity\PortfolioItem" (настроенное ограничение: 1).
1 ответ
Решение
Проблема заключалась в кеше. Перезагрузка сервера после установки и запуска extra-bundle composer
bin/console cache:clear
решил вопрос.