Zend Framework 2:在控制器之间共享视图的正确方法

时间:2013-07-04 10:48:35

标签: zend-framework zend-framework2

zf2中最正确的方法是在从另一个控制器扩展的控制器之间共享视图。让我们说控制器A和B. A扩展B:

class AController extends BController{

}

class BController{
 public action shareAction(){
 }
}

1路,在模块配置中输入指向B共享视图的动作共享的视图路径;

'template_map' => array(
    'a/index/index'   => __DIR__ . '/../view/a/index.phtml',
    'a/share/index'     => __DIR__ . '../../../../view/b/share/share.phtml',//SCALE TO REACH B VIEW

2路,在模块配置中输入指向本地视图路径的动作共享的视图路径

'template_map' => array(
    'a/index/index'   => __DIR__ . '/../view/a/index.phtml',
    'a/share/index'     => __DIR__ . '../view/a/share/share.phtml',

和put的share.phtml:

echo $this->partial('b/share/index')

或者,如果有另一种最佳方式,哪个?

1 个答案:

答案 0 :(得分:2)

您也可以逐个操作更改模板:

public function testAction()
{
    // If you wanted to change the actual base layout template:
    //$this->layout()->setTemplate('my/layout/base-layout.phtml');

    $viewModel = new ViewModel();
    $viewModel->setTemplate('my/template/here');

    return $viewModel;
}

您选择的方法取决于您希望如何/为什么要这样做,如果有覆盖或天气的模式,则更多是基于adhoc。如果您打算以特别的方式更改模板,那么上面就好了