Yii中render和renderPartial的区别,yiirenderpartial
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()
<?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; }
以上在实际操作中还是比较有用的,比如你不想用大组建,可以直接将变量输到模板,也可以将多个变量组成数组输到模版里面去.
require就行了啊,如果非要用render()的话用renderPartial()
例如:
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,));

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









技術的解決策: まず、ドロップダウン ボックス コンポーネントを作成します まず、ドロップダウン ボックスの内容を表示するコンポーネントを作成します。コンポーネント名は次で始まります: Select.vue 福祉モール Saas プラットフォーム アクティビティ カスタマイズされたレンダリング コンポーネント このコンポーネントを Web ページにレンダリングしたいのですが、操作は次のようになります: マウスが製品サービスに移動すると、ドロップダウン ボックスがレンダリングされます。コンポーネントをコンポーネント インスタンスとしてページ上の適切な場所に配置します。 vue3 では、Vonde をレンダリングするコア ロジックは次のとおりです: import{createVNode,h,render,VNode}from'vue'importcomponentfrom"./component。

レンダーとはレンダリングという意味で、描画用語です。レンダリングとはCGの最後の工程であり、最終的に映像を3Dシーンに適合させる段階でもあります。レンダリングを英語ではレンダーと言い、シェーディングと呼ぶ人もいますが、一般的に Shade は Shade と呼ばれ、シェーディングの場合 Render はレンダリングと呼ばれます。

仮想通貨の世界は常に流動的であり、新しいトークンが次の大きな機会を求める経験豊富な投資家の注目を集めています。

Skyline とともに、HMD Global は Nokia Lumia 920 スタイルのミッドレンジ スマートフォンを 7 月 10 日に発表する予定です。リーカー @smashx_60 からの最新情報によると、Lumia のデザインは間もなくタブレットにも使用される予定です。これは c になります

レンダーコイン:長期保有に値する投資機会 レンダーコインはイーサリアムブロックチェーンに基づく暗号通貨で、分散型レンダリングネットワークRender上のレンダリングサービスの料金を支払うように設計されています。目標は、従来のレンダリング ソリューションの高コストと非効率性に対処し、アーティストやクリエイターに手頃な価格で便利なレンダリング オプションを提供することです。レンダー コインの利点は分散化です。レンダー コインはイーサリアム ブロックチェーンに基づいており、分散化の特性を備えており、単一障害点と集中型レンダリング サービス プロバイダーの高コストを回避します。高効率: レンダー コインは分散レンダリング テクノロジーを使用して、世界中のアイドル状態の GPU にレンダリング タスクを割り当て、レンダリング効率を大幅に向上させます。低コスト: レンダー コインは仲介者を排除することでレンダリングのコストを削減します。

Render (RNDR)、Mantle (MNT)、sei (SEI) などの有名な暗号通貨を購入する人々は現在、DTX Exchange (DTX) に資金を投入しています。

Vue.js は、人気のある JavaScript フレームワークとして、開発者に多くの便利な機能を提供します。最も重要な機能の 1 つは、Vue.js のコンポーネント システムです。 Vue.js を使用すると、ネイティブ構文、つまり HTML、CSS、JavaScript を使用してコンポーネントを作成できます。この構文は非常にエレガントで簡潔ですが、場合によっては十分な柔軟性が得られない可能性があります。このような場合、レンダリング関数を使用すると、コンポーネントの出力をより詳細に制御できるようになります。レンダリング関数は新しい概念ではありません。

RENDERは急速に上昇傾向にありました。アルトコインの勢いは、重要な5.22ドルの水準を突破するまで低迷し、市場構造が強気に反転した。
