2012-11-06 14 views
21

Chcę zwrócić fragment kodu HTML, jak również inne wartości w ciąg json, oto co mam:Jak zwrócić szablon renderowany z gałązkami jako część odpowiedzi 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; 

Ale mogę to {"html":{"headers":{}}}. Czy istnieje sposób na pobranie renderowanego kodu HTML?

Odpowiedz

41

Zamiast tego należy użyć .

$this->render() zwraca obiekt Response, a $this->renderView() zwraca ciąg znaków wynikający z renderowania szablonu.

+3

Po prostu dodając, że te metody są częścią Symfony. Biblioteka rdzeniowa Twig wykorzystuje wyświetlanie $ twig-> do wyprowadzania treści, podczas gdy $ twig-> render zwraca zawartość. Może być nieco mylące! :-) – Webberig

+2

innym sposobem może być użycie metody getContent() obiektu Response. – stef

Powiązane problemy