Zend Framework在模块/控制器中渲染不同的视图

And*_*ndy 9 php zend-framework

我正在使用各种模块和父控制器来保持一致性.

我的父控制器有许多常见操作,每个后续子控制器都需要访问.我发现很难让这个默认动作呈现正确的视图.

我不想为每个模块添加相同的视图 - 这会打败对象 - 但我希望在某个地方有一个默认视图.

我试过了:

$this->_forward('commonaction', 'baselayout', 'default');
Run Code Online (Sandbox Code Playgroud)

这对我来说不起作用 - 因为它试图再次处理动作 - 当我已经填充了我父控制器中所需的变量时.

任何帮助都会很棒.

更新:

为了澄清我希望能够使用来自不同模块的公共视图.所有示例和解决方案目前都采用通用模块.这对我不起作用.

小智 7

我使用以下方法修复它:

$this->_helper->viewRenderer->renderBySpec('foo', array('module' => 'modulename', 'controller' => 'controllername')); 
Run Code Online (Sandbox Code Playgroud)


Aur*_*osa 5

在控制器中使用此语句:

// Render 'foo' instead of current action script
$this->_helper->viewRenderer('foo');

// render form.phtml to the 'html' response segment, without using a
// controller view script subdirectory:
$this->_helper->viewRenderer('form', 'html', true);
Run Code Online (Sandbox Code Playgroud)

来自官方文档http://framework.zend.com/manual/en/zend.controller.actionhelpers.html

不可能(据我所知)显示不同模块的视图.除了官方文件中没有这个问题的痕迹.