国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
PHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解,yii框架
您可能感興趣的文章:
Rumah pembangunan bahagian belakang tutorial php PHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解,yii框架_PHP教程

PHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解,yii框架_PHP教程

Jul 12, 2016 am 08:55 AM
php yii

PHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解,yii框架

視圖是 MVC 模式中的一部分。 它是展示數(shù)據(jù)到終端用戶的代碼,在網(wǎng)頁應(yīng)用中,根據(jù)視圖模板來創(chuàng)建視圖,視圖模板為PHP腳本文件, 主要包含HTML代碼和展示類PHP代碼,通過yii\web\View應(yīng)用組件來管理, 該組件主要提供通用方法幫助視圖構(gòu)造和渲染,簡(jiǎn)單起見,我們稱視圖模板或視圖模板文件為視圖。

創(chuàng)建視圖

如前所述,視圖為包含HTML和PHP代碼的PHP腳本,如下代碼為一個(gè)登錄表單的視圖, 可看到PHP代碼用來生成動(dòng)態(tài)內(nèi)容如頁面標(biāo)題和表單,HTML代碼把它組織成一個(gè)漂亮的HTML頁面。

<&#63;php
use yii\helpers\Html;
use yii\widgets\ActiveForm;

/* @var $this yii\web\View */
/* @var $form yii\widgets\ActiveForm */
/* @var $model app\models\LoginForm */

$this->title = 'Login';
&#63;>
<h1><&#63;= Html::encode($this->title) &#63;></h1>

<p>Please fill out the following fields to login:</p>

<&#63;php $form = ActiveForm::begin(); &#63;>
  <&#63;= $form->field($model, 'username') &#63;>
  <&#63;= $form->field($model, 'password')->passwordInput() &#63;>
  <&#63;= Html::submitButton('Login') &#63;>
<&#63;php ActiveForm::end(); &#63;>

在視圖中,可訪問 $this 指向 yii\web\View 來管理和渲染這個(gè)視圖文件。

除了 $this之外,上述示例中的視圖有其他預(yù)定義變量如 $model, 這些變量代表從控制器或其他觸發(fā)視圖渲染的對(duì)象 傳入 到視圖的數(shù)據(jù)。

技巧: 將預(yù)定義變量列到視圖文件頭部注釋處,這樣可被IDE編輯器識(shí)別,也是生成視圖文檔的好方法。
安全

當(dāng)創(chuàng)建生成HTML頁面的視圖時(shí),在顯示之前將用戶輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)碼和過濾非常重要, 否則,你的應(yīng)用可能會(huì)被跨站腳本 攻擊。

要顯示純文本,先調(diào)用 yii\helpers\Html::encode() 進(jìn)行轉(zhuǎn)碼,例如如下代碼將用戶名在顯示前先轉(zhuǎn)碼:

<&#63;php
use yii\helpers\Html;
&#63;>

<div class="username">
  <&#63;= Html::encode($user->name) &#63;>
</div>

要顯示HTML內(nèi)容,先調(diào)用 yii\helpers\HtmlPurifier 過濾內(nèi)容,例如如下代碼將提交內(nèi)容在顯示前先過濾:

<&#63;php
use yii\helpers\HtmlPurifier;
&#63;>

<div class="post">
  <&#63;= HtmlPurifier::process($post->text) &#63;>
</div>

技巧:HTMLPurifier在保證輸出數(shù)據(jù)安全上做的不錯(cuò),但性能不佳,如果你的應(yīng)用需要高性能可考慮 緩存 過濾后的結(jié)果。

組織視圖

與 控制器 和 模型 類似,在組織視圖上有一些約定:

控制器渲染的視圖文件默認(rèn)放在 @app/views/ControllerID 目錄下, 其中 ControllerID 對(duì)應(yīng) 控制器 ID, 例如控制器類為PostController,視圖文件目錄應(yīng)為 @app/views/post, 控制器類 PostCommentController對(duì)應(yīng)的目錄為@app/views/post-comment, 如果是模塊中的控制器,目錄應(yīng)為 yii\base\Module::basePath 模塊目錄下的views/ControllerID 目錄;
對(duì)于 小部件 渲染的視圖文件默認(rèn)放在 WidgetPath/views 目錄, 其中 WidgetPath 代表小部件類文件所在的目錄;
對(duì)于其他對(duì)象渲染的視圖文件,建議遵循和小部件相似的規(guī)則。
可覆蓋控制器或小部件的 yii\base\ViewContextInterface::getViewPath() 方法來自定義視圖文件默認(rèn)目錄。

渲染視圖

可在 控制器, 小部件, 或其他地方調(diào)用渲染視圖方法來渲染視圖, 該方法類似以下格式:

/**
 * @param string $view 視圖名或文件路徑,由實(shí)際的渲染方法決定
 * @param array $params 傳遞給視圖的數(shù)據(jù)
 * @return string 渲染結(jié)果
 */
methodName($view, $params = [])

控制器中渲染

在 控制器 中,可調(diào)用以下控制器方法來渲染視圖:

  • yii\base\Controller::render(): 渲染一個(gè) 視圖名 并使用一個(gè) 布局 返回到渲染結(jié)果。
  • yii\base\Controller::renderPartial(): 渲染一個(gè) 視圖名 并且不使用布局。
  • yii\web\Controller::renderAjax(): 渲染一個(gè) 視圖名 并且不使用布局, 并注入所有注冊(cè)的JS/CSS腳本和文件,通常使用在響應(yīng)AJAX網(wǎng)頁請(qǐng)求的情況下。
  • yii\base\Controller::renderFile(): 渲染一個(gè)視圖文件目錄或別名下的視圖文件。

例如:

namespace app\controllers;

use Yii;
use app\models\Post;
use yii\web\Controller;
use yii\web\NotFoundHttpException;

class PostController extends Controller
{
  public function actionView($id)
  {
    $model = Post::findOne($id);
    if ($model === null) {
      throw new NotFoundHttpException;
    }

    // 渲染一個(gè)名稱為"view"的視圖并使用布局
    return $this->render('view', [
      'model' => $model,
    ]);
  }
}

小物件
小物件是 CWidget 或其子類的實(shí)例.它是一個(gè)主要用于表現(xiàn)數(shù)據(jù)的組件.小物件通常內(nèi)嵌于一個(gè)視圖來產(chǎn)生一些復(fù)雜而獨(dú)立的用戶界面.例如,一個(gè)日歷小物件可用于渲染一個(gè)復(fù)雜的日歷界面.小物件使用戶界面更加可復(fù)用.

我們可以按如下視圖腳本來使用一個(gè)小物件:

<&#63;php $this->beginWidget('path.to.WidgetClass'); &#63;>
...可能會(huì)由小物件獲取的內(nèi)容主體...
<&#63;php $this->endWidget(); &#63;>

或者

<&#63;php $this->widget('path.to.WidgetClass'); &#63;>

后者用于不需要任何 body 內(nèi)容的組件.

小物件可通過配置來定制它的表現(xiàn).這是通過調(diào)用 CBaseController::beginWidget 或 CBaseController::widget 設(shè)置其初始化屬性值來完成的.例如,當(dāng)使用 CMaskedTextField 小物件時(shí),我們想指定被使用的 mask (可理解為一種輸出格式,譯者注).我們通過傳遞一個(gè)攜帶這些屬性初始化值的數(shù)組來實(shí)現(xiàn).這里的數(shù)組的鍵是屬性的名稱,而數(shù)組的值則是小物件屬性所對(duì)應(yīng)的值.正如以下所示 :

<&#63;php
$this->widget('CMaskedTextField',array(
  'mask'=>'99/99/9999'
));
&#63;>

繼承 CWidget 并覆蓋其init() 和 run() 方法,可以定義一個(gè)新的小物件:

class MyWidget extends CWidget
{
  public function init()
  {
    // 此方法會(huì)被 CController::beginWidget() 調(diào)用
  }
 
  public function run()
  {
    // 此方法會(huì)被 CController::endWidget() 調(diào)用
  }
}

小物件可以像一個(gè)控制器一樣擁有它自己的視圖.默認(rèn)情況下,小物件的視圖文件位于包含了小物件類文件目錄的 views 子目錄之下.這些視圖可以通過調(diào)用 CWidget::render() 渲染,這一點(diǎn)和控制器很相似.唯一不同的是,小物件的視圖沒有布局文件支持。另外,小物件視圖中的$this指向小物件實(shí)例而不是控制器實(shí)例。

視圖中渲染

可以在視圖中渲染另一個(gè)視圖,可以調(diào)用yii\base\View視圖組件提供的以下方法:

  • yii\base\View::render(): 渲染一個(gè) 視圖名.
  • yii\web\View::renderAjax(): 渲染一個(gè) 視圖名 并注入所有注冊(cè)的JS/CSS腳本和文件,通常使用在響應(yīng)AJAX網(wǎng)頁請(qǐng)求的情況下。
  • yii\base\View::renderFile(): 渲染一個(gè)視圖文件目錄或別名下的視圖文件。

例如,視圖中的如下代碼會(huì)渲染該視圖所在目錄下的 _overview.php 視圖文件, 記住視圖中 $this 對(duì)應(yīng) yii\base\View 組件:

<&#63;= $this->render('_overview') &#63;>

其他地方渲染

在任何地方都可以通過表達(dá)式 Yii::$app->view 訪問 yii\base\View 應(yīng)用組件, 調(diào)用它的如前所述的方法渲染視圖,例如:

// 顯示視圖文件 "@app/views/site/license.php"
echo \Yii::$app->view->renderFile('@app/views/site/license.php');

您可能感興趣的文章:

  • 詳解PHP的Yii框架中自帶的前端資源包的使用
  • 簡(jiǎn)介PHP的Yii框架中緩存的一些高級(jí)用法
  • 深入解析PHP的Yii框架中的緩存功能
  • PHP的Yii框架中View視圖的使用進(jìn)階
  • PHP的Yii框架中Model模型的學(xué)習(xí)教程
  • 詳解PHP的Yii框架中的Controller控制器
  • PHP的Yii框架中移除組件所綁定的行為的方法
  • PHP的Yii框架中行為的定義與綁定方法講解
  • 深入講解PHP的Yii框架中的屬性(Property)
  • 詳解PHP的Yii框架中擴(kuò)展的安裝與使用

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1117072.htmlTechArticlePHP的Yii框架中創(chuàng)建視圖和渲染視圖的方法詳解,yii框架 視圖是 MVC 模式中的一部分。 它是展示數(shù)據(jù)到終端用戶的代碼,在網(wǎng)頁應(yīng)用中,根據(jù)...
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

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Topik panas

Tutorial PHP
1502
276
PHP memanggil AI Pembantu Suara Pintar PHP Pembinaan Sistem Interaksi Suara PHP PHP memanggil AI Pembantu Suara Pintar PHP Pembinaan Sistem Interaksi Suara PHP Jul 25, 2025 pm 08:45 PM

Input suara pengguna ditangkap dan dihantar ke backend PHP melalui API Mediarecorder JavaScript front-end; 2. PHP menjimatkan audio sebagai fail sementara dan memanggil STTAPI (seperti Pengiktirafan Suara Google atau Baidu) untuk mengubahnya menjadi teks; 3. PHP menghantar teks kepada perkhidmatan AI (seperti Openaigpt) untuk mendapatkan jawapan pintar; 4. PHP kemudian memanggil TTSAPI (seperti sintesis Baidu atau Google Voice) untuk menukar balasan ke fail suara; 5. PHP mengalir fail suara kembali ke bahagian depan untuk bermain, menyelesaikan interaksi. Seluruh proses dikuasai oleh PHP untuk memastikan hubungan lancar antara semua pautan.

Cara Menggunakan PHP untuk Membina Fungsi Perkongsian Sosial PHP Perkongsian Interface Integration Practice Cara Menggunakan PHP untuk Membina Fungsi Perkongsian Sosial PHP Perkongsian Interface Integration Practice Jul 25, 2025 pm 08:51 PM

Kaedah teras untuk membina fungsi perkongsian sosial dalam PHP adalah untuk menghasilkan pautan perkongsian secara dinamik yang memenuhi keperluan setiap platform. 1. Mula -mula dapatkan halaman semasa atau URL dan maklumat artikel yang ditentukan; 2. Gunakan urlencode untuk menyandikan parameter; 3. Sambutan dan menjana pautan perkongsian mengikut protokol setiap platform; 4. Pautan paparan di hujung depan untuk pengguna mengklik dan berkongsi; 5. Dinamik menghasilkan tag OG pada halaman untuk mengoptimumkan paparan kandungan perkongsian; 6. Pastikan untuk melepaskan input pengguna untuk mencegah serangan XSS. Kaedah ini tidak memerlukan pengesahan yang kompleks, mempunyai kos penyelenggaraan yang rendah, dan sesuai untuk kebanyakan keperluan perkongsian kandungan.

Cara Menggunakan PHP Digabungkan dengan AI Untuk Mencapai Ralat Pembetulan Ralat PHP Pengesanan dan Pengoptimuman Sintaks PHP Cara Menggunakan PHP Digabungkan dengan AI Untuk Mencapai Ralat Pembetulan Ralat PHP Pengesanan dan Pengoptimuman Sintaks PHP Jul 25, 2025 pm 08:57 PM

Untuk merealisasikan pembetulan ralat teks dan pengoptimuman sintaks dengan AI, anda perlu mengikuti langkah -langkah berikut: 1. Pilih model AI atau API yang sesuai, seperti Baidu, Tencent API atau perpustakaan NLP sumber terbuka; 2. Panggil API melalui curl atau Guzzle PHP dan memproses hasil pulangan; 3. Maklumat pembetulan ralat paparan dalam aplikasi dan membenarkan pengguna memilih sama ada untuk mengadopsinya; 4. Gunakan php-l dan php_codesniffer untuk pengesanan sintaks dan pengoptimuman kod; 5. Secara berterusan mengumpul maklum balas dan mengemas kini model atau peraturan untuk meningkatkan kesannya. Apabila memilih AIAPI, fokus pada menilai ketepatan, kelajuan tindak balas, harga dan sokongan untuk PHP. Pengoptimuman kod harus mengikuti spesifikasi PSR, gunakan cache yang munasabah, elakkan pertanyaan bulat, mengkaji semula kod secara berkala, dan gunakan x

Beyond the Lamp Stack: Peranan PHP dalam Senibina Enterprise Moden Beyond the Lamp Stack: Peranan PHP dalam Senibina Enterprise Moden Jul 27, 2025 am 04:31 AM

Phpisstillrelevantinmodernenterpriseenvironments.1.modernphp (7.xand8.x) Menawarkan Perpaduan Perlengkapan, ketegangan, jitcompilation, danmodernsyntax, makeitsuatableforlarge-scaleapplications.2.phpintegratefective

Penalaan Prestasi Pemetaan Objek (ORM) di PHP Penalaan Prestasi Pemetaan Objek (ORM) di PHP Jul 29, 2025 am 05:00 AM

Elakkan masalah pertanyaan n 1, mengurangkan bilangan pertanyaan pangkalan data dengan memuatkan data yang berkaitan terlebih dahulu; 2. Pilih hanya medan yang diperlukan untuk mengelakkan memuat entiti lengkap untuk menjimatkan memori dan jalur lebar; 3. Gunakan strategi cache yang munasabah, seperti cache sekunder doktrin atau hasil pertanyaan frekuensi tinggi Cache; 4. Mengoptimumkan kitaran hayat entiti dan panggilan jelas () secara teratur untuk membebaskan memori untuk mengelakkan limpahan memori; 5. Memastikan indeks pangkalan data wujud dan menganalisis penyata SQL yang dihasilkan untuk mengelakkan pertanyaan yang tidak cekap; 6. Lumpuhkan penjejakan perubahan automatik dalam senario di mana perubahan tidak diperlukan, dan gunakan array atau mod ringan untuk meningkatkan prestasi. Penggunaan ORM yang betul memerlukan menggabungkan pemantauan SQL, caching, pemprosesan batch dan pengoptimuman yang sesuai untuk memastikan prestasi aplikasi sambil mengekalkan kecekapan pembangunan.

Membina microservices yang berdaya tahan dengan PHP dan Rabbitmq Membina microservices yang berdaya tahan dengan PHP dan Rabbitmq Jul 27, 2025 am 04:32 AM

Untuk membina microservice PHP yang fleksibel, anda perlu menggunakan RabbitMQ untuk mencapai komunikasi asynchronous, 1. Decouple perkhidmatan melalui beratur mesej untuk mengelakkan kegagalan cascade; 2. Konfigurasi beratur berterusan, mesej berterusan, pengesahan pelepasan dan ACK manual untuk memastikan kebolehpercayaan; 3. Menggunakan Backoff Exponential Backoff, TTL dan Kegagalan Pemprosesan Keselamatan Gilir Surat Dead; 4. Gunakan alat seperti penyelia untuk melindungi proses pengguna dan membolehkan mekanisme degupan jantung untuk memastikan kesihatan perkhidmatan; dan akhirnya menyedari keupayaan sistem untuk terus beroperasi dalam kegagalan.

Contoh Perintah Python Run Shell Contoh Perintah Python Run Shell Jul 26, 2025 am 07:50 AM

Gunakan subprocess.run () untuk melaksanakan perintah shell dengan selamat dan menangkap output. Adalah disyorkan untuk lulus parameter dalam senarai untuk mengelakkan risiko suntikan; 2. Apabila ciri -ciri shell diperlukan, anda boleh menetapkan shell = benar, tetapi berhati -hati dengan suntikan arahan; 3. Gunakan subprocess.popen untuk merealisasikan pemprosesan output masa nyata; 4. Tetapkan semak = benar untuk membuang pengecualian apabila arahan gagal; 5. Anda boleh secara langsung memanggil rantai untuk mendapatkan output dalam senario mudah; Anda harus memberi keutamaan kepada subprocess.run () dalam kehidupan seharian untuk mengelakkan menggunakan os.system () atau modul yang tidak ditetapkan. Kaedah di atas mengatasi penggunaan teras untuk melaksanakan perintah shell di Python.

Mewujudkan persekitaran docker siap pengeluaran untuk php Mewujudkan persekitaran docker siap pengeluaran untuk php Jul 27, 2025 am 04:32 AM

Menggunakan imej asas PHP yang betul dan mengkonfigurasi persekitaran docker yang dioptimumkan prestasi yang selamat adalah kunci untuk mencapai pengeluaran siap. 1. Pilih PHP: 8.3-fpm-alpine sebagai imej asas untuk mengurangkan permukaan serangan dan meningkatkan prestasi; 2. Lumpuhkan fungsi berbahaya melalui php.ini adat, matikan paparan ralat, dan aktifkan Opcache dan JIT untuk meningkatkan keselamatan dan prestasi; 3. Gunakan nginx sebagai proksi terbalik untuk menyekat akses kepada fail sensitif dan memajukan permintaan PHP dengan betul kepada PHP-FPM; 4. Gunakan imej pengoptimuman pelbagai peringkat untuk menghapuskan kebergantungan pembangunan, dan menubuhkan pengguna bukan akar untuk menjalankan bekas; 5. Supervisord pilihan untuk menguruskan pelbagai proses seperti Cron; 6. Sahkan bahawa tiada kebocoran maklumat sensitif sebelum penggunaan

See all articles