2009-05-31 3 views
0

Ich möchte eine Variable in meiner Symfony-Aktion festlegen, die die gerenderten Vorlagedaten für diese Aktion enthält. Ich gebe einen JSON-Inhalt mit der Aktion zurück, und ich würde gerne speichern, was die Aktion in den JSON ausgeben und zurückgeben würde.Wie kann der gerenderte Vorlageninhalt in Symfony als Variable in einer Aktion abgerufen werden?

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)); 
} 

Antwort

0

Was ich am Ende getan habe, war mit einem Flash statt zu versuchen, JSON zu senden. Die Vorlage des AJAX-Inhalts versuchte, den Flash oben zu erkennen, und wenn dies der Fall war, führte er die "Erfolg" -Methoden aus (Schließen der modalen Popup-Box).

2

Wenn Sie Ihre Vorlage als Teil des Namens, können Sie

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

getPartial API

+0

Dieser See ist eine weitere mögliche Methode, solange es Ihre Vorlage als Teil haben funktioniert. Danke Colin. –

0
exit($this->getPartial('ajaxPriceAdditionNew')); 

// apps/frontend/modules/community/templates/_ajaxPriceAdditionNew.php