Bof*_*fin 2 symfony1 symfony-1.4
我需要symfony 1.4动作,它将接收模板名称列表作为参数,并将这些呈现的模板作为JSONed哈希返回.这是代码:
foreach ($templateNames as $templateName)
$result[$templateName] = $this->getController()->getPresentationFor($this->getModuleName(), $this->getActionName(), $templateName);
Run Code Online (Sandbox Code Playgroud)
该代码导致"已为此请求检测到太多转发".被抛出的异常.我假设这是因为getPresentationFor为同一个模块和动作创建了内部请求.所以问题是如何实现我的目标并获得渲染和返回的几个模板?
PS:我正在使用现有系统,所以我不能使用部分或组件,只能使用模板.
试试这个:
$view = $this->getController()->getView($this->getModuleName(), $this->getActionName(), sfView::SUCCESS);
$view->execute();
$view->getAttributeHolder()->add($this->getVarHolder()->getAll());
$result[$templateName] = $view->render();
Run Code Online (Sandbox Code Playgroud)
我个人扩展了sfAction以包含一个getPresentation方法:
<?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();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5145 次 |
| 最近记录: |