带组的 Symfony 序列化器不工作 - 空输出
Symfony Serializer with Groups not working - empty output
我正在尝试使用默认的 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);
}
这总是给出以下输出:
[[]]
为什么总是空的?
我使用群组的原因是没有它们我会出现以下错误:
A circular reference has been detected when serializing the object of class "App\Entity\PortfolioItem" (configured limit: 1).
问题出在缓存上。
extra-bundle composer 安装后重启服务器,运行 bin/console cache:clear
解决了问题。
我正在尝试使用默认的 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);
}
这总是给出以下输出:
[[]]
为什么总是空的?
我使用群组的原因是没有它们我会出现以下错误:
A circular reference has been detected when serializing the object of class "App\Entity\PortfolioItem" (configured limit: 1).
问题出在缓存上。
extra-bundle composer 安装后重启服务器,运行 bin/console cache:clear
解决了问题。