En Symfony, la forma de recuperar el contenido de la plantilla representa como una variable en una acción?
Pregunta
Me gustaría establecer una variable en mi acción de Symfony que contiene los datos de la plantilla prestados por esa acción. Voy a devolver algo de contenido JSON con la acción, y me gustaría para almacenar lo que la acción estaría emitiendo en el JSON y lo devuelve.
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));
}
Solución 2
Lo que terminé haciendo fue el uso de un flash en lugar de tratar de enviar JSON. La plantilla del contenido AJAX trató de detectar el flash en la parte superior, y si es así, lo hizo los métodos de "éxito" (cerrando el cuadro emergente modal).
Otros consejos
Si el nombre de su plantilla como parcial, puede utilizar
$json['content] = $this->getPartial('ajaxPriceAdditionNew');
exit($this->getPartial('ajaxPriceAdditionNew'));
// apps/frontend/modules/community/templates/_ajaxPriceAdditionNew.php
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow