ZendFramework-2.4 源代码 - 关于MVC - View层 - 在模板内渲染子模板

 

<?php
// 方式一:
// 1.在模板内直接编写如下内容即可
$viewModel = new ViewModel();
$viewModel->setTemplate('album/album/subtemplate'); // 使用模板,可以不用设置,会自动识别
$viewModel->setVariables($this->vars());
$viewModel->setVariable('var12subtpl', 'var12subtpl_value');
echo $this->render($viewModel);

// 方式二: 
// 1.在控制器的方法中编写如下内容
class Ctrl1Controller extends AbstractActionController
{
    public function action1Action(){
        // 模板
        $data = array(
            'key1' => 'key1value',
        );
        $viewModelTop = new ViewModel($data);
        $viewModelTop->setTemplate('module1/ctrl1/action1'); // 使用模板,可以不用设置,会自动识别
        $viewModelTop->setTerminal(false); // false表示使用布局模板,默认是false
        $viewModelTop->setCaptureTo('content'); // 放入布局文件的中的变量中
        $viewModelTop->setVariables(array(
            'childrenStr'=>''
        ));
    
        // 子模板
        $viewModelSub = new ViewModel($data);
        $viewModelSub->setTemplate('module1/ctrl1/action1sub');
        $viewModelTop->addChild($viewModelSub,'childrenStr',true);
        return $viewModelTop;
    }
}
?>
// 2.在控制器的方法模板中编写如下内容
// 文件module1/ctrl1/action1.phtml
<div>
hello,this is action tpl content,and the subtpl content is : <?php echo $childrenStr; ?>
</div>

 

posted on 2017-02-10 18:29  周~~  阅读(296)  评论(0编辑  收藏  举报

导航