В Symfony обнаружена круговая ссылка

Я столкнулся с проблемой, связанной с циклической ссылкой в ​​Symfony, которую я подозреваю
вызвано сериализатором, но я еще не нашел никаких ответов. Вот сущности, которые я создал, маршрут и контроллер. Любые предложения в этом отношении будут высоко оценены.

User.php

class User
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\OneToMany(targetEntity="Dieta", mappedBy="user")
*/
private $dietas;
public function __construct()
{
$this->dietas = new ArrayCollection();
}
//...
//...
}

Dieta.php

    class Dieta
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="dietas")
* @ORM\JoinColumn(name="users_id", referencedColumnName="id")
*/
private $user;
public function __construct()
{
$this->user = new ArrayCollection();
}

//...
//...
}

маршрут

/**
* @Route("dietas/list/user/{id}", name="userDietas")
*/

Метод DietaController.php

public function userListAction($id)
{
$encoders = array(new XmlEncoder(), new JsonEncoder());
$normalizers = array(new ObjectNormalizer());
$serializer = new Serializer($normalizers, $encoders);

$user = $this->getDoctrine()
->getRepository('AppBundle:User')->find($id);

$dietaDatas = $user->getDietas();if(!$dietaDatas) {
throw $this->createNotFoundException(
'There is no data...'
);
}

$jsonContent = $serializer->serialize($dietaDatas, 'json');
return new Response($jsonContent);
}

4

Решение

Вам нужно позвонить $normalizer->setCircularReferenceHandler()
пожалуйста, прочитайте официальную документацию ниже:

обработки круговых ссылок

1

Другие решения

Других решений пока нет …