Symfony2序列化器有时不工作

时间:2016-03-30 16:37:21

标签: json symfony serialization jmsserializerbundle

这是我的控制器。在大多数情况下它工作得很好,并为我返回一个很好的JSON对象。但在某些实体上,它只是挂在下面所示的行上。我的实体中的数据完成情况各不相同,并且缺少特定字段与序列化无法正常工作之间似乎没有联系

此外,我的普通视图效果很好,它似乎只是序列化程序无法正常工作。

Symfony的内置序列化程序是否还有其他问题?

编辑:进行了深入研究,看起来我正在使用JMSSerializerBundle。

    $em = $this->getDoctrine()->getManager('inertia');

    $entity = $em->getRepository('InertiaBundle:Accounts')->find($id);

    if (!$entity) {
        throw $this->createNotFoundException('Unable to find Accounts entity.');
    }


    if($format == 'json') {
        // return json array
        $serializer = $this->get('serializer');
        $data = $serializer->serialize($entity, 'json'); //hangs at this line.

        $response = new Response($data);
        $response->headers->set('Content-Type', 'application/json');
        return $response;
    } else {
        $deleteForm = $this->createDeleteForm($id);
        return $this->render('InertiaBundle:Accounts:show.html.twig', array(
            'entity'      => $entity,
            'delete_form' => $deleteForm->createView(),
        ));
    }

1 个答案:

答案 0 :(得分:0)

我遇到类似的问题,请求挂在以下一行:

$serializer = $this->get('serializer');

用以下内容替换它似乎有效

$serializer = $this->container->get('serializer');

我还不太了解Symfony2,知道为什么会这样,但也许比我更有知识的人可以解释。