Как установить roundReferenceLimit в SerializerInterface Symfony 3.4 - PullRequest
0 голосов
/ 05 июля 2018

У меня ошибка

При сериализации объекта класс "AppBundle \ Entity \ Match" (настроено ограничение: 1) Это потому, что я попробуй сериализовать класс сущности со ссылками

. Пока я обнаружил, что мне нужно выполнить $ 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]

1 Ответ

0 голосов
/ 05 июля 2018

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

use Symfony\Component\Serializer\Annotation\MaxDepth;

namespace Acme;

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

    // ...
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...