Rumah pembangunan bahagian belakang tutorial php Yii中render和renderPartial的区别_php技巧

Yii中render和renderPartial的区别_php技巧

May 16, 2016 pm 08:36 PM
render

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

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;
}
Salin selepas log masuk

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan kotak drop-down menu dalam vue3 melalui fungsi render Bagaimana untuk melaksanakan kotak drop-down menu dalam vue3 melalui fungsi render May 10, 2023 pm 04:28 PM

Penyelesaian teknikal: Mula-mula tulis komponen kotak lungsur Pertama, kami mula-mula menulis komponen untuk memaparkan kandungan kotak lungsur. Nama komponen bermula dengan: Select.vue Welfare Mall Saas Platform Activity Disesuaikan Komponen Rendering Kami ingin memaparkan komponen ini pada halaman web Operasi harus seperti ini: apabila tetikus bergerak ke perkhidmatan produk, tunjukkan kotak drop-down komponen sebagai contoh komponen di lokasi yang sesuai pada halaman. Dalam vue3, memberikan Vonde, logik teras adalah seperti berikut: import{createVNode,h,render,VNode}from'vue'importcomponentfrom"./component.

Mpeppe (MPEPE) Coin: Pesaing Baharu dalam Pasaran Mata Wang Kripto Menarik Pelabur dari Render (RNDR) dan Komputer Internet (ICP) Mpeppe (MPEPE) Coin: Pesaing Baharu dalam Pasaran Mata Wang Kripto Menarik Pelabur dari Render (RNDR) dan Komputer Internet (ICP) Sep 03, 2024 pm 02:03 PM

Dunia mata wang kripto sentiasa berubah-ubah, dengan token baharu menarik perhatian pelabur berpengalaman yang mencari peluang besar seterusnya.

Adakah render bermaksud rendering? Adakah render bermaksud rendering? Feb 02, 2023 pm 02:52 PM

Render bermaksud pemaparan dan merupakan istilah lukisan ialah proses terakhir CG, dan ia juga merupakan peringkat yang akhirnya menjadikan imej itu sesuai dengan pemandangan 3D dipanggil Render dalam bahasa Inggeris, dan sesetengah orang akan memanggilnya teduhan, tetapi umumnya Shade dipanggil Untuk teduhan, Render dipanggil rendering.

HMD Slate Tab 5G bocor sebagai tablet jarak pertengahan dengan Snapdragon 7s Gen 2, paparan 10.6 inci dan reka bentuk Lumia HMD Slate Tab 5G bocor sebagai tablet jarak pertengahan dengan Snapdragon 7s Gen 2, paparan 10.6 inci dan reka bentuk Lumia Jun 18, 2024 pm 05:46 PM

Dengan Skyline, HMD Global bersedia untuk memperkenalkan telefon pintar kelas pertengahan dalam gaya Nokia Lumia 920 pada 10 Julai. Menurut maklumat terkini daripada pembocor @smashx_60, reka bentuk Lumia tidak lama lagi akan turut digunakan untuk sebuah tablet, yang akan menjadi c

Adakah syiling Render berbaloi untuk disimpan untuk jangka masa panjang? Adakah Render Coin berbaloi untuk melabur? Adakah syiling Render berbaloi untuk disimpan untuk jangka masa panjang? Adakah Render Coin berbaloi untuk melabur? Mar 06, 2024 am 08:31 AM

Render Coin: Peluang pelaburan yang layak untuk memegang Render Coin jangka panjang ialah mata wang kripto berdasarkan blockchain Ethereum dan direka bentuk untuk membayar perkhidmatan rendering pada rangkaian rendering terdesentralisasi Render. Matlamatnya adalah untuk menangani kos tinggi dan ketidakcekapan penyelesaian rendering tradisional dan menyediakan artis dan pencipta pilihan rendering yang berpatutan dan mudah. Kelebihan syiling Render ialah desentralisasi: Syiling Render adalah berdasarkan blok blok Ethereum dan mempunyai ciri terdesentralisasi, mengelakkan satu titik kegagalan dan kos tinggi penyedia perkhidmatan rendering terpusat. Kecekapan tinggi: Syiling pemaparan menggunakan teknologi pemaparan yang diedarkan untuk memperuntukkan tugas pemaparan kepada GPU terbiar di seluruh dunia, meningkatkan kecekapan pemaparan. Kos rendah: Render coin mengurangkan kos rendering dengan menghapuskan orang tengah.

DTX Exchange (DTX) – Era Baharu dalam Dagangan Dalam Talian DTX Exchange (DTX) – Era Baharu dalam Dagangan Dalam Talian Aug 12, 2024 am 12:24 AM

Orang yang membeli syiling crypto nama besar seperti Render (RNDR), Mantle (MNT) dan Sei (SEI) kini memasukkan wang ke dalam DTX Exchange (DTX).

Petua dan amalan terbaik untuk menggunakan fungsi pemaparan untuk melaksanakan pemaparan komponen dalam Vue Petua dan amalan terbaik untuk menggunakan fungsi pemaparan untuk melaksanakan pemaparan komponen dalam Vue Jun 25, 2023 am 10:02 AM

Vue.js, sebagai rangka kerja JavaScript yang popular, menyediakan pembangun dengan banyak ciri berguna. Salah satu ciri yang paling penting ialah sistem komponen Vue.js. Vue.js membolehkan kami menulis komponen menggunakan sintaks asli, iaitu HTML, CSS dan JavaScript. Sintaks ini sangat elegan dan ringkas, tetapi dalam beberapa kes ia mungkin tidak cukup fleksibel. Dalam kes ini, menggunakan fungsi render boleh membantu kami mempunyai lebih kawalan ke atas output komponen. Fungsi rendering bukanlah konsep baru;

Render (RENDER) Meningkat 38% dalam 2 Hari Selepas Menuntut Semula Tahap Rintangan Utama Render (RENDER) Meningkat 38% dalam 2 Hari Selepas Menuntut Semula Tahap Rintangan Utama Nov 13, 2024 am 12:26 AM

RENDER telah menjadi arah aliran menaik dengan pantas. Momentum altcoin adalah lembap sebelum paras utama $5.22 ditembusi dan struktur pasaran bertukar menaik.

See all articles