具有组的Symfony序列化程序不工作-输出为空



我正在尝试使用默认的Symfony Serializer将数据序列化为JSON
为此,我尝试使用@Groups(),如下所述:
https://symfony.com/doc/current/serializer.html

添加@Groups注释后,如下所示:

class User implements UserInterface
{
// ...
/**
* @ORMOneToMany(targetEntity=PortfolioItem::class, mappedBy="user", orphanRemoval=true)
* @ORMOrderBy({"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);
}

这总是给出以下输出:
[[]]
为什么它总是空的?

我使用组的原因是,如果没有它们,我会出现以下错误:

在序列化类"的对象时检测到循环引用;应用程序\实体\投资组合项目"(配置限制:1(。

问题出在缓存上。在安装额外的bundle composer并运行bin/console cache:clear后重新启动服务器解决了此问题。

相关内容

  • 没有找到相关文章

最新更新