2012-06-19 4 views
2

템플릿 이름 목록을 매개 변수로 받아서 렌더링 된 템플릿을 JSONed 해시로 반환하는 symfony 1.4 액션이 필요합니다. 다음은 코드입니다.Symfony 1.4. 템플릿을 문자열로 렌더링하는 방법

foreach ($templateNames as $templateName) 
    $result[$templateName] = $this->getController()->getPresentationFor($this->getModuleName(), $this->getActionName(), $templateName); 

"이 요청에 대해 너무 많은 전달이 감지되었습니다."라는 코드가 있습니다. 던져 질 예외. 나는 이것이 getPresentationFor가 동일한 모듈과 액션에 대한 내부 요청을 생성하기 때문이라고 생각한다. 질문은 어떻게하면 내 목표를 달성하고 여러 템플릿을 렌더링하고 반환 할 수 있습니까?

추 신 : 기존 시스템으로 작업 중이므로 부분 또는 구성 요소는 사용할 수없고 템플릿 만 사용할 수 있습니다.

답변

5

이 시도 :

<?php 

abstract class kfAction extends sfAction { 

    public function getPresentation($viewName = sfView::SUCCESS) { 
     $view = $this->getController()->getView($this->getContext()->getModuleName(), $this->getContext()->getActionName(), $viewName); 
     $view->execute(); 
     $view->getAttributeHolder()->add($this->getVarHolder()->getAll()); 
     return $view->render(); 
    } 

} 
: 저는 개인적으로 sfAction을 확장

$view = $this->getController()->getView($this->getModuleName(), $this->getActionName(), sfView::SUCCESS); 
$view->execute(); 
$view->getAttributeHolder()->add($this->getVarHolder()->getAll()); 
$result[$templateName] = $view->render(); 

getPresentation 방법을 포함

관련 문제