Как установить circleReferenceLimit в SerializerInterface Symfony 3.4

У меня ошибка

A circular reference has been detected when serializing the object of class "AppBundle\Entity\Match" (configured limit: 1) This is because I try to serialize entity class with references

. Пока я обнаружил, что мне нужно выполнить $ normalizer-> setCircularReferenceLimit (2); Как мне сделать это с помощью SerializerInterface.

Мой код

/**
 * @Route("/v2/json/match/{id}", name = "json_single_match")
 * @Method("GET")
 */
public function getSingleMatchAction(SerializerInterface $serializer, $id) {

    $repo = $this->getDoctrine()->getManager()->getRepository('AppBundle:Match');
    $post = $repo->findOneBy(['id' => $id]);

    $data = $serializer->serialize(['post' => $post], 'json', ['groups' => ["rest", "matches", "players"]]);
    $response = new JsonResponse();
    $response->setContent($data);
    return $response;

}


get_set_method_normalizer:
    class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
    public: false
    tags: [serializer.normalizer]
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
0
493
1

Ответы 1

Вы можете указать maxDepth в своей сущности с аннотациями, это сработает для вас?

use Symfony\Component\Serializer\Annotation\MaxDepth;

namespace Acme;

class MyObj
{
    /**
     * @MaxDepth(2)
     */
    public $child;

    // ...
 }

Другие вопросы по теме