Symfony 3.0.4 Circular reference detected during serialization with FOSRestBundle Symfony 3.0.4 Circular reference detected during serialization with FOSRestBundle symfony symfony

Symfony 3.0.4 Circular reference detected during serialization with FOSRestBundle


    $normalizers->setCircularReferenceHandler(function ($object) {        return $object->getId();    });

Just add it after you make the instance if your objectNormalizer()it worl perfectly for me


If you use FosRestBundle, you can use the GROUPS for the serializer. There is an annotation given by FosRestBundle : @FOS\RestBundle\Controller\Annotations\View(serializerGroups={"user"})

Your group can exclude the circular property.

Another idea you can do this. In your app/config/services.yml

circular_reference_handler:    public: false    class: callback    factory: [AppBundle\Serializer\CircularHandlerFactory, getId]serializer.normalizer.object:    class: Symfony\Component\Serializer\Normalizer\ObjectNormalizer    arguments: ["@serializer.mapping.class_metadata_factory", null, "@serializer.property_accessor"]    public: false    tags: [serializer.normalizer]    calls:        - method: setCircularReferenceLimit          arguments: [1]        - method: setCircularReferenceHandler          arguments: ["@circular_reference_handler"]

The factory can be like this:

namespace AppBundle\Serializer;class CircularHandlerFactory{    /**     * @return \Closure     */    public static function getId()    {        return function ($object) {            return $object->getId();        };    }}