【问题标题】:Call view script of (parent) Abstract controller Zend调用(父)抽象控制器 Zend 的视图脚本
【发布时间】:2013-08-13 16:21:42
【问题描述】:

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

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

如何在基本控制器目录下渲染视图脚本?

【问题讨论】:

  • 您应该指定您正在使用的框架的版本。拥有两个标签会令人困惑。

标签: php zend-framework


【解决方案1】:

可能在您的操作中禁用默认 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");

【讨论】:

  • 请注意,您给出的答案是基于 ZF1,该问题也带有 ZF2 标记。不确定@Obaid 使用什么版本..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多