调用(父)抽象控制器Zend的视图脚本

时间:2013-08-13 16:21:43

标签: php zend-framework

我有一个父(抽象)控制器,我有2个子控制器扩展抽象控制器。我有一个在子控制器中都很常见的动作,因此我在我的抽象控制器中实现了。

问题是当我从其中一个子控制器调用此操作时(例如/ module / child1 / commonaction),操作调用将传递给基本控制器,并在执行该功能后,它会查找视图脚本。我在文件夹名称下有一个公共视图脚本与基本控制器相同,但底层Zend机制在子控制器命名的目录中查找视图脚本(在这种情况下,它查找child1 / commonaction.phtml)虽然我有basecontroller / commonaction.phtml中的视图脚本。

如何在基本控制器目录下呈现视图脚本?

1 个答案:

答案 0 :(得分:2)

可能在您的操作中最简单的方法是禁用默认的viewRenderer并自行渲染文件。

// coerce a view from the view renderer.
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->initView("/path/to/base/controller");
$this->view = $viewRenderer->view;
// disable automatic rendering
$viewRenderer->setNoRender(true);
// do all your action stuff here
$this->getResponse()->appendBody($this->view->render("viewscript.phtml");