我正在尝试使用默认的 Symfony 序列化器将数据序列化为 JSON。
为此,我尝试@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)。