我遇到了JMS序列化器错误。我使用序列化组,但是循环对象未序列化。
这是我的返回序列化响应的函数。
ExecutionContext
这是我的实体1
$entity1 = New Entity1();
[some algorithm...]
// DISPLAY ENTITY TO VERIFY THE LOOP on ENTITY
var_dump($entity1->getEntity2()->getEntity3()->getEntity1()->getEntity2()->getId());
// DISPLAY WELL THE ID SO THE OBJECT WELL EXIST
return new Response(
$serializer->serialize(
$entity1,
'json',
SerializationContext::create()->setGroups(['id', 'elements'])
)
);
这是Entity2
class Entity1
{
/**
* @var int
* @Groups("id")
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Entity2
* @Groups("elements")
*/
private $entity2;
}
/**
* @var name
* @Groups("elements")
*/
private $name;
}
这是Entity3
class Entity2
{
/**
* @var int
* @Groups("id")
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Entity3
* @Groups("elements")
*/
private $entity3;
}
但响应仅是:
class Entity3
{
/**
* @var int
* @Groups("id")
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var Entity1
* @Groups("elements")
*/
private $entity1;
}
缺少子实体1的实体2,仅序列化了“ id”和“ name”。我不明白为什么...