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 решил вопрос.

Другие вопросы по тегам