Symfony2:对 Twig 的 JSON 响应?
我从 mongodb 收到 json 响应,但无法将其放入树枝模板中。有人可以解释它并展示最佳实践吗?谢谢。
/**
* @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));
}
i'm getting a json response from mongodb, but i can't get this into a twig template. could somebody explain it and show best pratice? thanks.
/**
* @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));
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,您没有从 MongoDB 获得 JSON 响应,而是获得一个
Event
文档对象。如果您想将其传递给 Twig,而不是返回响应,请返回一个数组(因为您使用的是@Template
注释:该对象将在您的模板中作为
event< /代码>。
First of all, you are not getting a JSON response from MongoDB — you are getting an
Event
document object. If you want to pass it to Twig, instead of returning a response, return an array (since you're using the@Template
annotation:The object will be accessible in your template as
event
.这里描述的最佳实践是使用
base.json.twig
模板,如此处 和 此处,而不是响应(json_encode($data))
。The best practice describe here would be to use a
base.json.twig
template, as described here and here, instead ofResponse(json_encode($data))
.