yii框架渲染结构

时间:2015-12-05 06:48:41

标签: php yii

我有一个关于渲染视图的问题yii框架中的步骤,当我调用此行时:

$this->render('test',array('model'=>$model));

在第2列布局表单中首先关闭所有框架 layout-> main.php ,然后运行 layout-> column2.php 然后运行我的查看 site-> test.php
我的问题是框架如何执行此步骤以及框架在使用此命令时如何理解:

<?php echo $content;?>

哪个$content适合现在使用?
tnx

1 个答案:

答案 0 :(得分:2)

这是一个自定义的column2布局。我用它作为样本解释步骤

 <?php /* @var $this Controller */ ?>
<?php $this->beginContent('//layouts/main'); ?>
<div class="span-19">
    <div id="content">
        <?php echo $content; ?>
    </div><!-- content -->
</div>
<div class="span-5 last">
    <div id="sidebar">
    <?php
        $this->beginWidget('zii.widgets.CPortlet', array(
            'title'=>'Operations',
        ));
        $this->widget('zii.widgets.CMenu', array(
            'items'=>$this->menu,
            'htmlOptions'=>array('class'=>'operations'),
        ));
        $this->endWidget();
    ?>
    </div><!-- sidebar -->
</div>
<?php $this->endContent(); ?>

然后代码以顺序执行。部分

 <?php $this->beginContent('//layouts/main'); ?>

显示主要布局

并在main.php布局main.php中行

<?php echo $content; ?>

回显了column1.php或column2.php的内容,因此它们不会替换main.php中的部分代码,它们的内容只是在main.php中回显。

由控制器中的渲染器调用的视图的渲染在这里完成

<div class="span-19">
    <div id="content">
        <?php echo $content; ?>
    </div><!-- content -->
</div> 

此部分管理secondo列并结束内容

<div class="span-5 last">
    <div id="sidebar">
    <?php
        $this->beginWidget('zii.widgets.CPortlet', array(
            'title'=>'Operations',
        ));
        $this->widget('zii.widgets.CMenu', array(
            'items'=>$this->menu,
            'htmlOptions'=>array('class'=>'operations'),
        ));
        $this->endWidget();
    ?>
    </div><!-- sidebar -->
</div>
<?php $this->endContent(); ?>

我希望这很有用

来自控制器的渲染初始化$ content show in layout2 $ content ..这是在main.php $ content中呈现的另一个$ content中呈现的。

然后main.php $ content包含layout2和layout2 contian的内容结果,从你的视图中得出内容