Yii 框架如何把数据丢给布局公共部分

 我来答
Kiss錵錵
2015-07-15 · TA获得超过957个赞
知道小有建树答主
回答量:523
采纳率:40%
帮助的人:250万
展开全部
yii框架默认会渲染/protected/views/laytout/main.php布局文件,当然我们也可以自己设置控制器特有的布局文件,设置很简单:

<?php

class PostController extends Controller
{
public $layout='column2';

设置控制器类的 $layout属性为你想要渲染的布局文件就ok了

那么有了layout布局后,$this->render('index',array('dataProvider'=&
gt;$dataProvider,));,yii是先渲染column2布局文件还是先渲染index.php视图模版呢,答案很简单,我们看下

CController.php文件中的render函数就明白了:

[php] view plaincopy
public function render($view,$data=null,$return=false)
{
if($this->beforeRender($view))
{
$output=$this->renderPartial($view,$data,true);
if(($layoutFile=$this->getLayoutFile($this->layout))!==false)
$output=$this->renderFile($layoutFile,array('content'=>$output),true);

$this->afterRender($view,$output);

$output=$this->processOutput($output);

if($return)
return $output;
else
echo $output;
}
}

可以看到yii是先通过renderPartial来渲染视图模版,然后把模版渲染的结果放入content变量中通过renderFile去渲染布局文件
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式