问题描述
我的广告实体如下所示:
class Ad
{
private string $adId;
private ?string $platform;
private ?Collection $insights;
public function __construct(string $adId,string $platform)
{
$this->adId = $adId;
$this->platform = $platform;
$this->insights = new ArrayCollection();
}
. getters
. setters
.
}
我的 Insight 实体如下所示:
class Insight
{
private int $id;
private ?string $adId;
private string $adClicks;
private Datetime $date;
private ?Ad $ad;
public function __construct(string $adId,string $adClicks,DateTime $date,?Ad $ad)
{
$this->adId = $adId;
$this->adClicks = $adClicks;
$this->date = $date
$this->ad = $ad;
}
. getters
. setters
.
}
Ad 和 Insight 之间存在一对多关系。 一个广告有很多洞察
现在我尝试使用 Symfony 序列化器来序列化为这种 XML 格式:
<?xml version="1.0" encoding="UTF-8"?>
<ads updated="2021-04-26 09:55:43">
<ad adId="123">
<platform>platform</platform>
<insights>
<insight date="2021-04-18">
<adClicks>111.11</adClicks>
</insight>
<insight date="2021-04-17">
<adClicks>31.11</adClicks>
</insight>
<insight date="2021-04-16">
<adClicks>431.11</adClicks>
</insight>
</insights>
</ad>
</ads>
我在控制器中尝试过这样的事情:
final class AdsController extends AbstractController
{
private SerializerInterface $serializer;
private normalizerInterface $normalizer;
public function __construct(SerializerInterface $serializer,normalizerInterface $normalizer)
{
$this->queryBus = $queryBus;
$this->commandBus = $commandBus;
$this->serializer = $serializer;
$this->normalizer = $normalizer;
}
public function __invoke(Request $request): Response
{
$ads = $this->em->findAll();
$res = $this->serializer->serialize($ads,'xml'));
return $res;
}
}
但我收到以下错误:
A circular reference has been detected when serializing the object of class "Ad" (configured limit: 1).
我的问题是如何将具有一对多关系的 Ad 对象转换为我上面附加的格式的见解?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)