No Symfony, como recuperar o conteúdo do modelo renderizado como uma variável em uma ação?
Pergunta
Eu gostaria de definir uma variável na minha ação Symfony que contém os dados do modelo renderizado para essa ação. Estou retornando algum conteúdo JSON com a ação, e eu gostaria de armazenar o que a ação seria a saída para o JSON e devolvê-lo.
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));
}
Solução 2
O que eu acabei fazendo era usar um flash em vez de tentar enviar JSON. O modelo do conteúdo AJAX tentou detectar o flash no topo, e se assim for, ele fez os métodos "sucesso" (fechando a caixa de pop-up modal).
Outras dicas
Se você nomear o seu modelo como um parcial, você pode usar
$json['content] = $this->getPartial('ajaxPriceAdditionNew');
exit($this->getPartial('ajaxPriceAdditionNew'));
// apps/frontend/modules/community/templates/_ajaxPriceAdditionNew.php
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow