Сериализатор JMS останавливается при зацикливании - PullRequest
0 голосов
/ 12 сентября 2018

Я столкнулся с ошибкой в ​​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"и" имя "сериализуются.Я не понимаю, почему ...

...