目录
Yii中render和renderPartial的区别,yiirenderpartial
yii框架layouts里mainphp想再引用一个页面该怎写?render好像不行
yii 通过redirect()或render 怎跳转到父页面
首页 php教程 php手册 Yii中render和renderPartial的区别,yiirenderpartial

Yii中render和renderPartial的区别,yiirenderpartial

Jun 13, 2016 am 09:25 AM
render

Yii中render和renderPartial的区别,yiirenderpartial

以下由我们在信易网络公司开发项目的时候终结出的一些经验
在进行页面输出渲染的时候。

1.render 输出父模板的内容,将渲染的内容,嵌入父模板。|
2.renderPartial 则不输出父模板的内容。只对本次渲染的局部内容,进行输出。

同时还有个重要的区别:

render 函数内部默认执行processOutput($output)函数, 会将把组件,比如 CTreeView 里面注册到 CClientScript 里面的
需要的脚本进行渲染输出。

而renderPartial() 默认不自动渲染输出客户端脚本,需要进行参数的指定,才会输出:
renderPartial($view,$data=null,$return=false,$processOutput=false)
指定processOutput 为 true 即可。

比如要局部输出 CTreeView ,用renderPartial 进行渲染,如果按照默认processOutput=false 则输出内容,不含有客户端脚本
输出内容则为 正常的 ul 列表。没有树形的折叠效果。 主动设定 processOutput=true 后,CTreeView 所需的,所有客户端脚本就会被正常输出在列表的前面。

下面介绍下要用到的几个相关的函数:

render,renderPartial 不再介绍
processOutput()

<&#63;php
publicfunction 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;
  }
}
publicfunction renderPartial($view,$data=null,$return=false,$processOutput=false)
{
  if(($viewFile=$this->getViewFile($view))!==false)
  {
    $output=$this->renderFile($viewFile,$data,true);
    if($processOutput)
      $output=$this->processOutput($output);
    if($return)
      return $output;
    else
      echo $output;
  }
  else
    thrownewCException(Yii::t('yii','{controller} cannot find the requested view "{view}".',
      array('{controller}'=>get_class($this),'{view}'=>$view)));
}
publicfunction processOutput($output)
{
  Yii::app()->getClientScript()->render($output);
  // if using page caching, we should delay dynamic output replacement
  if($this->_dynamicOutput!==null&& $this->isCachingStackEmpty())
  {
    $output=$this->processDynamicOutput($output);
    $this->_dynamicOutput=null;
  }
  if($this->_pageStates===null)
    $this->_pageStates=$this->loadPageStates();
  if(!empty($this->_pageStates))
    $this->savePageStates($this->_pageStates,$output);
  return $output;
}
登录后复制

以上在实际操作中还是比较有用的,比如你不想用大组建,可以直接将变量输到模板,也可以将多个变量组成数组输到模版里面去.

yii框架layouts里mainphp想再引用一个页面该怎写?render好像不行

require就行了啊,如果非要用render()的话用renderPartial()
 

yii 通过redirect()或render 怎跳转到父页面

例如:
1. Yii::app()->user->returnUrl = Yii::app()->getBaseUrl()."/step/show/id/1";
$this->redirect(Yii::app()->user->returnUrl);
2. $this->redirect(array('step/show','id'=>1));
3. $this->render('index',array('post'=>$questions));
4. $this->renderPartial('field_show',array('field'=>$field,'key'=>++$key,));
 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vue3怎么通过render函数实现菜单下拉框 vue3怎么通过render函数实现菜单下拉框 May 10, 2023 pm 04:28 PM

技术方案先写一个下拉框组件首先,我们先写一个组件,用来展示下拉框内容。组件名称起为:Select.vue福利商城Saas平台活动定制渲染组件我们要将这个组件渲染在网页上,操作应该是这样的:当鼠标移动到产品服务时,将下拉框组件作为一个组件实例渲染在页面的合适位置。vue3中,渲染一个Vonde,核心逻辑如下:import{createVNode,h,render,VNode}from'vue'importcomponentfrom"./component.

Mpeppe(MPEPE)币:加密货币市场的新竞争者,吸引来自 Render(RNDR)和互联网计算机(ICP)的投资者 Mpeppe(MPEPE)币:加密货币市场的新竞争者,吸引来自 Render(RNDR)和互联网计算机(ICP)的投资者 Sep 03, 2024 pm 02:03 PM

加密货币的世界总是在不断变化,新的代币吸引了寻找下一个重大机会的经验丰富的投资者的注意力。

render是渲染的意思吗 render是渲染的意思吗 Feb 02, 2023 pm 02:52 PM

render是渲染的意思,是一种绘图术语;渲染是CG的最后一道工序,也是最终使图像符合的3D场景的阶段;渲染英文为Render,也有人会把它称为着色,但一般把Shade称为着色,把Render称为渲染。

HMD Slate Tab 5G 泄露为中端平板电脑,搭载 Snapdragon 7s Gen 2、10.6 英寸显示屏和 Lumia 设计 HMD Slate Tab 5G 泄露为中端平板电脑,搭载 Snapdragon 7s Gen 2、10.6 英寸显示屏和 Lumia 设计 Jun 18, 2024 pm 05:46 PM

HMD Global 将于 7 月 10 日推出 Skyline,推出一款类似诺基亚 Lumia 920 风格的中端智能手机。根据泄密者 @smashx_60 的最新信息,Lumia 设计很快也将用于平板电脑,这将是 c

Render币值得长期持有吗?Render币值得投资吗? Render币值得长期持有吗?Render币值得投资吗? Mar 06, 2024 am 08:31 AM

Render币:值得长期持有的投资机会Render币是基于以太坊区块链的加密货币,专为支付去中心化渲染网络Render上的渲染服务而设计。其目标是应对传统渲染解决方案的高成本和低效率,为艺术家和创作者提供经济实惠且便捷的渲染选择。Render币的优势去中心化:Render币基于以太坊区块链,具有去中心化的特性,避免了中心化渲染服务商的单点故障和高昂费用。高效率:Render币利用分布式渲染技术,将渲染任务分配给全球各地的闲置GPU,大幅提高渲染效率。低成本:Render币通过消除中间商,降低了渲

DTX Exchange (DTX) – 在线交易的新时代 DTX Exchange (DTX) – 在线交易的新时代 Aug 12, 2024 am 12:24 AM

购买 Render (RNDR)、Mantle (MNT) 和 Sei (SEI) 等知名加密货币的人现在正在将资金投入 DTX Exchange (DTX)。

Vue 中使用 render 函数实现组件渲染的技巧及最佳实践 Vue 中使用 render 函数实现组件渲染的技巧及最佳实践 Jun 25, 2023 am 10:02 AM

Vue.js作为一款流行的JavaScript框架,为开发人员提供了许多有用的功能。其中一个最重要的功能是Vue.js的组件系统。Vue.js允许我们使用原生语法编写组件,即HTML,CSS和JavaScript。这种语法非常优美和简洁,但在一些情况下,它可能并不足够灵活。在这些情况下,使用渲染函数可以帮助我们更好地控制组件的输出。渲染函数不是新的概念,它在

渲染 (RENDER) 收复关键阻力位后 2 天内上涨 38% 渲染 (RENDER) 收复关键阻力位后 2 天内上涨 38% Nov 13, 2024 am 12:26 AM

RENDER 呈迅速上升趋势。在突破 5.22 美元的关键水平之前,山寨币的势头一直疲软,市场结构转为看涨。

See all articles