web-dev-qa-db-ja.com

JSON応答の一部としてtwigレンダリングされたテンプレートを返すにはどうすればよいですか?

HTMLスニペットと他の値を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を取得する方法はありますか?

23
ed209

代わりに$this->renderView()を使用してください。

$this->render()Responseオブジェクトを返し、$this->renderView()はテンプレートのレンダリング結果の文字列を返します。

46