这篇文章主要介绍了Yii中提供;给予和渲染部分的区别,以下由我们在信易网络公司开发项目的时候终结出的一些经验
以下由我们在信易网络公司开发项目的时候终结出的一些经验
在进行页面输出渲染的时候。
1 .渲染输出父模板的内容,将渲染的内容,嵌入父模板。|
2 .渲染部分则不输出父模板的内容。只对本次渲染的局部内容,进行输出。
同时还有个重要的区别:
提供;给予函数内部默认执行过程输出(输出)函数,会将把组件,比如CTreeView里面注册到CClientScript里面的
需要的脚本进行渲染输出。
而renderPartial()默认不自动渲染输出客户端脚本,需要进行参数的指定,才会输出:
renderPartial($view,$data=null,$return=false,$processOutput=false)
指定过程输出为真实的即可。
比如要局部输出CTreeView,用渲染部分进行渲染,如果按照默认processOutput=false则输出内容,不含有客户端脚本
输出内容则为正常的保险商实验所列表。没有树形的折叠效果。主动设定processOutput=true后,CTreeView所需的,所有客户端脚本就会被正常输出在列表的前面。
下面介绍下要用到的几个相关的函数:
渲染,部分渲染不再介绍
processOutput()
?服务器端编程语言(专业超文本预处理器的缩写)
publicfunction render($view,$data=null,$return=false)
{
if($this-beforeRender($view))
{
$ output=$ this-render partial($ view,$data,true);
if(($ layout file=$ this-getLayoutFile($ this-layout))!==假)
$ output=$ this-render file($ layout file,array('content'=$output),true);
$this-afterRender($view,$ output);
$ output=$ this-进程输出($ output);
if($return)
返回$输出
其他
echo $输出
}
}
公共函数render partial($ view,$data=null,$return=false,$processOutput=false)
{
if(($ view file=$ this-getview file($ view))!==假)
{
$ output=$ this-render file($ view file,$data,true);
if($processOutput)
$ output=$ this-进程输出($ output);
if($return)
返回$输出
其他
echo $输出
}
其他
thrownewceexception(Yii:t(' Yii ',' {controller}找不到请求的视图{查看} .
array(' { controller } '=get _ class($ this),' { view } '=$ view)));
}
公共函数流程输出(输出)
{
yii:app()-getClientScript()-render($ output);
//如果使用页面缓存,我们应该延迟动态输出替换
if($this-_dynamicOutput!==null $ this-iscachingstacksempty())
{
$ output=$ this-processDynamicOutput($ output);
$ this-_ dynamic output=null;
}
if($this-_pageStates===null)
$ this-_ pageStates=$ this-load pageStates();
如果(!空($this-_pageStates))
$ this-保存页面状态($ this-_ pageStates,$ output);
返回$输出
}
以上在实际操作中还是比较有用的,比如你不想用大组建,可以直接将变量输到模板,也可以将多个变量组成数组输到模版里面去。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。