В Symfony, как получить содержимое шаблона как переменную в действии? - PullRequest
0 голосов
/ 31 мая 2009

Я бы хотел установить переменную в своем действии Symfony, которая содержит данные отрисованного шаблона для этого действия. Я возвращаю некоторый контент JSON с действием и хочу сохранить то, что действие будет выводить в JSON, и вернуть его.

public function executeAjaxPriceAdditionCreate(sfWebRequest $request)
{
    $this->form = new ProductPriceAdditionAjaxForm();

    $json['success'] = $this->processAjaxPriceAdditionForm($request, $this->form);
    $this->setTemplate('ajaxPriceAdditionNew');
    $json['content'] = ???; // THIS IS WHERE THE RENDERED TEMPLATE CONTENT SHOULD GO.

            $this->getResponse()->setHttpHeader('Content-Type','application/json; charset=utf-8');
    return $this->renderText(json_encode($json));
}

Ответы [ 3 ]

2 голосов
/ 01 июня 2009

Если вы назовете свой шаблон частичным, вы можете использовать

$json['content] = $this->getPartial('ajaxPriceAdditionNew');

См. getPartial API

0 голосов
/ 18 октября 2010
exit($this->getPartial('ajaxPriceAdditionNew'));

// apps/frontend/modules/community/templates/_ajaxPriceAdditionNew.php
0 голосов
/ 31 мая 2009

В итоге я использовал флэш-память вместо того, чтобы пытаться отправить JSON. Шаблон содержимого AJAX пытался обнаружить вспышку вверху, и если это так, он использовал методы «success» (закрывая модальное всплывающее окно).

...