如何将树枝呈现的模板作为 JSON 响应的一部分返回?
Posted
技术标签:
【中文标题】如何将树枝呈现的模板作为 JSON 响应的一部分返回?【英文标题】:How do I return a twig rendered template as part of a JSON response? 【发布时间】:2012-10-26 18:25:03 【问题描述】:我想返回一个 html sn-p 以及 json 字符串中的其他值,这就是我所拥有的:
$html = $this->render('sometemplate.html.twig', array( 'somevar' => $somevar ) );
$response = new Response(json_encode( array("html" => $html, "name" => "Joe Bloggs") ));
$response->headers->set('Content-Type', 'application/json');
return $response;
但我得到的只是"html":"headers":
。有没有办法只抓取呈现的 HTML?
【问题讨论】:
【参考方案1】:请改用$this->renderView()
。
$this->render()
返回一个Response
对象,而$this->renderView()
返回一个由渲染模板产生的字符串。
【讨论】:
只是添加这些方法是 Symfony 的一部分。 Twig 核心库使用 $twig->display 来输出内容,而 $twig->render 返回内容。可能有点混乱! :-) 另一种方法是使用 Response 对象的 getContent() 方法。以上是关于如何将树枝呈现的模板作为 JSON 响应的一部分返回?的主要内容,如果未能解决你的问题,请参考以下文章