我有一个关于渲染视图的问题yii框架中的步骤,当我调用此行时:
$this->render('test',array('model'=>$model));
在第2列布局表单中首先关闭所有框架 layout-> main.php ,然后运行 layout-> column2.php 然后运行我的查看 site-> test.php
我的问题是框架如何执行此步骤以及框架在使用此命令时如何理解:
<?php echo $content;?>
哪个$content
适合现在使用?
tnx
答案 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的内容结果,从你的视图中得出内容