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

首頁 php框架 YII yii框架如何使用表單

yii框架如何使用表單

Nov 26, 2019 pm 05:09 PM
yii

yii框架如何使用表單

如何建立一個(gè)讓使用者提交資料的表單頁。該頁將顯示一個(gè)包含 name 輸入框和 email 輸入框的表單。當(dāng)提交這兩部分資訊後,頁面將會顯示使用者所輸入的資訊。? ? ? ? ?(建議學(xué)習(xí):yii架構(gòu)

為了實(shí)現(xiàn)這個(gè)目標(biāo),除了建立一個(gè)操作和兩個(gè)視圖外,還需要建立一個(gè)模型。

透過本教學(xué)課程,你將會學(xué)到:

建立一個(gè)模型代表使用者透過表單輸入的資料

宣告規(guī)則去驗(yàn)證輸入的資料

在檢視中產(chǎn)生一個(gè)HTML 表單

建立模型

模型類別EntryForm 代表從使用者那請求的數(shù)據(jù), 類別如下所示並儲存在models/EntryForm.php 檔案中。?

<?php

namespace app\models;

use Yii;
use yii\base\Model;

class EntryForm extends Model
{
    public $name;
    public $email;

    public function rules()
    {
        return [
            [[&#39;name&#39;, &#39;email&#39;], &#39;required&#39;],
            [&#39;email&#39;, &#39;email&#39;],
        ];
    }
}

此類別繼承自Yii 提供的一個(gè)基底類別?yii\base\Model, 此基底類別通常用來表示資料。

信息: yii\base\Model 被用于普通模型類的父類并與數(shù)據(jù)表無關(guān)。yii\db\ActiveRecord 通常是普通模型類的父類但與數(shù)據(jù)表有關(guān)聯(lián)(譯注:yii\db\ActiveRecord 類其實(shí)也是繼承自 yii\base\Model,增加了數(shù)據(jù)庫處理)。

EntryForm?類別包含?name?和?email?兩個(gè)公共成員, 用來儲存使用者輸入的資料。它也包含一個(gè)名為?rules()?的方法, 用來傳回資料驗(yàn)證規(guī)則的集合。上面聲明的驗(yàn)證規(guī)則表示:

name?和?email?值都是必須的

email?的值必須滿足email規(guī)則驗(yàn)證

如果你有一個(gè)處理用戶提交資料的EntryForm?對象, 你可以呼叫它的?validate()?方法觸發(fā)資料驗(yàn)證。如果有資料驗(yàn)證失敗,將把?hasErrors?屬性設(shè)為 ture, 想要知道具體發(fā)生什麼錯(cuò)誤就呼叫?getErrors。

<?php
$model = new EntryForm();
$model->name = &#39;Qiang&#39;;
$model->email = &#39;bad&#39;;
if ($model->validate()) {
    // 驗(yàn)證成功!
} else {
    // 失??!
    // 使用 $model->getErrors() 獲取錯(cuò)誤詳情
}

建立動作

下面你得在 site 控制器中建立一個(gè) entry 操作用於新建的模型。

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;
use app\models\EntryForm;

class SiteController extends Controller
{
    // ...現(xiàn)存的代碼...

    public function actionEntry()
    {
        $model = new EntryForm;

        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            // 驗(yàn)證 $model 收到的數(shù)據(jù)

            // 做些有意義的事 ...

            return $this->render(&#39;entry-confirm&#39;, [&#39;model&#39; => $model]);
        } else {
            // 無論是初始化顯示還是數(shù)據(jù)驗(yàn)證錯(cuò)誤
            return $this->render(&#39;entry&#39;, [&#39;model&#39; => $model]);
        }
    }
}

此操作首先建立了一個(gè) EntryForm 物件。然後嘗試從 $_POST 蒐集使用者提交的數(shù)據(jù), 由 Yii 的 yii\web\Request::post() 方法負(fù)責(zé)蒐集。如果模型成功填入資料(也就是說使用者已經(jīng)提交了 HTML 表單), 操作會呼叫 validate() 去確保使用者提交的是有效資料。

信息: 表達(dá)式 Yii::$app 代表應(yīng)用實(shí)例,它是一個(gè)全局可訪問的單例。 同時(shí)它也是一個(gè)服務(wù)定位器, 能提供 request,response,db 等等特定功能的組件。 在上面的代碼里就是使用 request 組件來訪問應(yīng)用實(shí)例收到的 $_POST 數(shù)據(jù)。

使用者提交表單後,操作將會渲染一個(gè)名為 entry-confirm 的視圖去確認(rèn)使用者輸入的資料。如果沒填表單就提交,或資料包含錯(cuò)誤(譯者:如 email 格式不對), entry 視圖將會渲染輸出,連同表單一起輸出的還有驗(yàn)證錯(cuò)誤的詳細(xì)資訊。

注意: 在這個(gè)簡單範(fàn)例裡我們只是呈現(xiàn)了有效資料的確認(rèn)頁面。實(shí)務(wù)上你應(yīng)該考慮使用 refresh() 或 redirect() 去避免表單重複提交問題。

建立視圖 ?

最後建立兩個(gè)視圖檔案 entry-confirm 和 entry。他們會被剛才創(chuàng)建的 entry 操作渲染。

entry-confirm 視圖簡單地顯示提交的 name 和 email 資料。視圖檔案應(yīng)該保存在 views/site/entry-confirm.php。

<?php
use yii\helpers\Html;
?>
<p>You have entered the following information:</p>
<ul>
    <li><label>Name</label>: <?= Html::encode($model->name) ?></li>
    <li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>

entry 視圖顯示一個(gè) HTML 表單。視圖文件應(yīng)該保存在 views/site/entry.php。

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, &#39;name&#39;) ?>
    <?= $form->field($model, &#39;email&#39;) ?>
    <div class="form-group">
        <?= Html::submitButton(&#39;Submit&#39;, [&#39;class&#39; => &#39;btn btn-primary&#39;]) ?>
    </div>
<?php ActiveForm::end(); ?>

用瀏覽器存取下面的 URL 看它能否運(yùn)作:

http://hostname/index.php?r=site/entry

你會看到一個(gè)包含兩個(gè)輸入框的表單的頁面。每個(gè)輸入框的前面都有一個(gè)標(biāo)籤來指明應(yīng)該輸入的資料類型。如果什麼都不填就點(diǎn)擊提交按鈕,或填入格式不正確的 email 位址,將會看到在對應(yīng)的輸入方塊下顯示錯(cuò)誤訊息。

yii框架如何使用表單輸入有效的 name 和 email 資訊並提交後, 將會看到一個(gè)顯示你所提交資料的確認(rèn)頁面。

yii框架如何使用表單

以上是yii框架如何使用表單的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Yii2 vs Phalcon:哪個(gè)框架更適合開發(fā)顯示卡渲染應(yīng)用? Yii2 vs Phalcon:哪個(gè)框架更適合開發(fā)顯示卡渲染應(yīng)用? Jun 19, 2023 am 08:09 AM

在當(dāng)前資訊時(shí)代,大數(shù)據(jù)、人工智慧、雲(yún)端運(yùn)算等技術(shù)已成為了各大企業(yè)關(guān)注的熱點(diǎn)。在這些技術(shù)中,顯示卡渲染技術(shù)作為一種高效能圖形處理技術(shù),受到了越來越多的關(guān)注。顯示卡渲染技術(shù)廣泛應(yīng)用於遊戲開發(fā)、影視特效、工程建模等領(lǐng)域。而對於開發(fā)者來說,選擇一個(gè)適合自己專案的框架,是一個(gè)非常重要的決策。在目前的語言中,PHP是一種相當(dāng)有活力的語言,一些優(yōu)秀的PHP框架如Yii2、Ph

Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個(gè)開源的PHPWeb應(yīng)用程式框架,提供了眾多的工具和元件,簡化了Web應(yīng)用程式開發(fā)的流程,其中資料查詢是其中一個(gè)重要的元件之一。在Yii框架中,我們可以使用類似SQL的語法來存取資料庫,從而有效率地查詢和操作資料。 Yii框架的查詢建構(gòu)器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

Symfony vs Yii2:哪個(gè)框架比較適合開發(fā)大型Web應(yīng)用? Symfony vs Yii2:哪個(gè)框架比較適合開發(fā)大型Web應(yīng)用? Jun 19, 2023 am 10:57 AM

隨著Web應(yīng)用需求的不斷增長,開發(fā)者在選擇開發(fā)框架方面也越來越有選擇的空間。 Symfony和Yii2是兩個(gè)備受歡迎的PHP框架,它們都具有強(qiáng)大的功能和效能,但在面對需要開發(fā)大型網(wǎng)路應(yīng)用程式時(shí),哪個(gè)框架更適合呢?接下來我們將對Symphony和Yii2進(jìn)行比較分析,以幫助你更好地進(jìn)行選擇?;靖攀鯯ymphony是一個(gè)由PHP編寫的開源Web應(yīng)用框架,它是建立

php如何使用Yii3框架? php如何使用Yii3框架? May 31, 2023 pm 10:42 PM

隨著互聯(lián)網(wǎng)的不斷發(fā)展,Web應(yīng)用程式開發(fā)的需求也越來越高。對於開發(fā)人員而言,開發(fā)應(yīng)用程式需要一個(gè)穩(wěn)定、高效、強(qiáng)大的框架,這樣可以提高開發(fā)效率。 Yii是一款領(lǐng)先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎(chǔ)上進(jìn)一步優(yōu)化了效能和程式碼品質(zhì)。在這篇文章中,我們將介紹如何使用Yii3框架來開發(fā)PHP應(yīng)用程式。

如何使用PHP框架Yii開發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) 如何使用PHP框架Yii開發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) Jun 27, 2023 am 09:04 AM

隨著雲(yún)端運(yùn)算技術(shù)的不斷發(fā)展,資料的備份已經(jīng)成為了每個(gè)企業(yè)必須要做的事情。在這樣的背景下,開發(fā)一款高可用的雲(yún)端備份系統(tǒng)尤其重要。而PHP框架Yii是一款功能強(qiáng)大的框架,可以幫助開發(fā)者快速建立高效能的Web應(yīng)用程式。以下將介紹如何使用Yii框架開發(fā)一款高可用的雲(yún)端備份系統(tǒng)。設(shè)計(jì)資料庫模型在Yii框架中,資料庫模型是非常重要的一環(huán)。因?yàn)橘Y料備份系統(tǒng)需要用到很多的表和關(guān)

php框架laravel和yii區(qū)別是什麼 php框架laravel和yii區(qū)別是什麼 Apr 30, 2025 pm 02:24 PM

Laravel和Yii的主要區(qū)別在於設(shè)計(jì)理念、功能特性和使用場景。 1.Laravel注重開發(fā)的簡潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開發(fā)和初學(xué)者。 2.Yii強(qiáng)調(diào)性能和效率,適用於高負(fù)載應(yīng)用,提供高效的ActiveRecord和緩存系統(tǒng),但學(xué)習(xí)曲線較陡。

yii與Docker:容器化和部署您的應(yīng)用程序 yii與Docker:容器化和部署您的應(yīng)用程序 Apr 02, 2025 pm 02:13 PM

使用Docker容器化和部署Yii應(yīng)用的步驟包括:1.創(chuàng)建Dockerfile,定義鏡像構(gòu)建過程;2.使用DockerCompose啟動Yii應(yīng)用和MySQL數(shù)據(jù)庫;3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術(shù)操作,還包括理解Dockerfile的工作原理和最佳實(shí)踐,以確保高效、可靠的部署。

Yii2 vs Symfony:哪個(gè)框架比較適合API開發(fā)? Yii2 vs Symfony:哪個(gè)框架比較適合API開發(fā)? Jun 18, 2023 pm 11:00 PM

隨著網(wǎng)路的快速發(fā)展,API成為了各種應(yīng)用間資料交換的重要方式。因此,開發(fā)一款易於維護(hù)、高效、穩(wěn)定的API框架變得越來越重要。而在選擇API框架時(shí),Yii2和Symfony是兩個(gè)備受開發(fā)者歡迎的選擇。那麼,哪一個(gè)比較適合API開發(fā)呢?本文將對這兩個(gè)框架進(jìn)行比較,並給出一些結(jié)論。一、基本介紹Yii2和Symfony都是成熟的PHP框架,都有相應(yīng)的擴(kuò)展,可以用來開

See all articles