Я столкнулся с ошибкой в JMS Serializer.Я использую группы сериализации, но циклический объект не сериализуется.
Вот моя функция, которая возвращает сериализованный ответ.
$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'])
)
);
Это мой Entity1
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;
}
Thisis Entity2
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;
}
Это 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;
}
Но ответ только:
{
"id": 1,
"name": "test",
"entity2: {
"id": 1,
"entity3": {
"id": 1,
"entity1: {
"id": 2,
"name": "test2"
}
}
}
}
Entity2 дочернего объекта1 отсутствует, только "id"и" имя "сериализуются.Я не понимаю, почему ...