Symfony2:JSON响应Twig?

时间:2011-12-04 04:40:03

标签: json mongodb symfony twig

我从mongodb得到了一个json响应,但是我无法将其变成一个twig模板。有人可以解释一下并表现出最好的实践吗?感谢。

/**
 * @Route("/event/{id}", name="event_details_view")
 * @Template()
 */
public function viewAction($id)
{
    $event = $this->get('doctrine.odm.mongodb.document_manager')
        ->getRepository('DungeonEventBundle:Event')
        ->findById($id);

    if (!$event) {
        throw $this->createNotFoundException('Event .$id. was not found.');
    }

    return new Response(json_encode($event));
}

2 个答案:

答案 0 :(得分:1)

首先,您没有从MongoDB获得JSON响应 - 您正在获取Event文档对象。如果要将其传递给Twig,而不是返回响应,则返回一个数组(因为您使用的是@Template注释:

return array('event' => $event);

该对象可在您的模板中以event形式访问。

答案 1 :(得分:0)

此处描述的最佳做法是使用base.json.twig模板,如herehere所述,而不是Response(json_encode($data))