Yii使用Forms
1.建立模型
a.加入基類
use yii/base/Model
b.創建類繼承自基類f.注意裡面用[]括起來
例如:
<?<span>php namespace app\models; </span><span>use</span><span> yii\base\Model; </span><span>class</span> EntryForm <span>extends</span><span> Model { </span><span>public</span> <span>$name</span><span>; </span><span>public</span> <span>$email</span><span>; </span><span>public</span> <span>function</span><span> rules() { </span><span>return</span><span> [ [[</span>'name', 'email'], 'required'],<span> [</span>'email', 'email'],<span> ]; } }</span>登入後複製
此類別繼承自Yii 提供的一個基底類別 [[yiibaseModel]],該基底類別通常用來表示資料
補充:[[yiibaseModel]] 被用於普通模型類別的父類別並與資料表無關。 [[yiidbActiveRecord]] 通常是普通模型類別的父類別但與資料表有關聯(譯註:[[yiidbActiveRecord]] 類別其實也是繼承自 [[yiibaseModel]],增加了資料庫處理)。EntryForm類別包含 name 和
email兩個公共成員,用來儲存使用者輸入的資料。它也包含一個名為
rules()
的方法,用來傳回資料驗證規則的集合。上面聲明的驗證規則表示:
name
和
的值必須滿足email規則驗證
如果你有一個處理用戶提交資料的
- EntryForm
對象,你可以呼叫它的 [[yiibaseModel::validate()|validate()]] 方法觸發資料驗證。如果有資料驗證失敗,將把 [[yiibaseModel::hasErrors|hasErrors]] 屬性設為 ture,想要知道具體發生什麼錯誤就呼叫 [[yiibaseModel::getErrors|getErrors]]。
<?<span>php </span><span>$model</span> = <span>new</span><span> EntryForm(); </span><span>$model</span>->name = 'Qiang'<span>; </span><span>$model</span>->email = 'bad'<span>; </span><span>if</span> (<span>$model</span>-><span>validate()) { </span><span>//</span><span> 验证成功!</span> } <span>else</span><span> { </span><span>//</span><span> 失败! // 使用 $model->getErrors() 获取错误详情</span> }登入後複製
2.建立操作
下面你得在site 控制器中建立一個 entry
操作用於新建的模型。操作的創建和使用已經在說一聲你好小節解釋了。<?<span>php namespace app\controllers; </span><span>use</span><span> Yii; </span><span>use</span><span> yii\web\Controller; </span><span>use</span><span> app\models\EntryForm; </span><span>class</span> SiteController <span>extends</span><span> Controller { </span><span>//</span><span> ...其它代码...</span> <span>public</span> <span>function</span><span> actionEntry() { </span><span>$model</span> = <span>new</span><span> EntryForm; </span><span>if</span> (<span>$model</span>->load(Yii::<span>$app</span>->request->post()) && <span>$model</span>-><span>validate()) { </span><span>//</span><span> 验证 $model 收到的数据 // 做些有意义的事 ...</span> <span>return</span> <span>$this</span>->render('entry-confirm', ['model' => <span>$model</span><span>]); } </span><span>else</span><span> { </span><span>//</span><span> 无论是初始化显示还是数据验证错误</span> <span>return</span> <span>$this</span>->render('entry', ['model' => <span>$model</span><span>]); } } }</span>登入後複製該操作首先建立了一個
EntryForm
物件。然後嘗試從 $_POST蒐集用戶提交的數據,由 Yii 的 [[yiiwebRequest::post()]] 方法負責蒐集。如果模型成功填入資料(也就是說使用者已經提交了 HTML 表單),操作將會呼叫 [[yiibaseModel::validate()|validate()]] 去確保使用者提交的是有效資料。
補充:表達式
Yii::$app代表
應用實例,它是一個全域可存取的單例。同時它也是一個
視圖將會渲染輸出,連同表單一起輸出的還有驗證錯誤的詳細資訊。服務定位器,能提供request,response,db 等等特定功能的組件。在上面的程式碼裡就是使用
request
元件來存取應用程式實例收到的$_POST
資料。使用者提交表單後,操作將會渲染一個名為
entry-confirm
的視圖去確認使用者輸入的資料。如果沒填表單就提交,或資料包含錯誤(譯者:如 email 格式不對),entry
注意:在這個簡單例子裡我們只是呈現了有效數據的確認頁。實務上你應該考慮使用 [[yiiwebController::refresh()|refresh()]] 或 [[yiiwebController::redirect()|redirect()]] 去避免
表單重複提交問題
。3.建立視圖
最後建立兩個視圖檔案entry-confirm 和 entry
。他們會被剛才創建的entry操作渲染。
entry-confirm
視圖簡單地顯示提交的 name 和 email 資料。視圖檔案保存在
views/site/entry-confirm.php。
<?<span>php </span><span>use</span><span> yii\helpers\Html; </span>?> <p>You have entered the following information:</p> <ul> <li><label>Name</label>: <?= Html::encode(<span>$model</span>->name) ?></li> <li><label>Email</label>: <?= Html::encode(<span>$model</span>->email) ?></li> </ul>登入後複製
entry視圖顯示一個 HTML 表單。視圖檔案保存在 views/site/entry.php<?<span>php </span><span>use</span><span> yii\helpers\Html; </span><span>use</span><span> yii\widgets\ActiveForm; </span>?> <?php <span>$form</span> = ActiveForm::begin(); ?> <?= <span>$form</span>->field(<span>$model</span>, 'name') ?> <?= <span>$form</span>->field(<span>$model</span>, 'email') ?> <div <span>class</span>="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::<span>end</span>(); ?>登入後複製
視圖使用了一個功能強大的小部件 [[yiiwidgetsActiveForm|ActiveForm]] 去產生 HTML 表單。其中的 begin()
和 end() 分別用來渲染表單的開始和關閉標籤。在這兩個方法之間使用了 [[yiiwidgetsActiveForm::field()|field()]] 方法去建立輸入框。第一個輸入框用於 “name”,第二個輸入框用於 “email”。之後使用 [[yiihelpersHtml::submitButton()]] 方法產生提交按鈕。<span>use</span><span> yii\helpers\Html; </span><span>use</span> yii\wigets\ActiveForm;登入後複製
記得使用小部件,並需要引進這個兩個
以上就介紹了Yii使用Forms,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

許多用戶在選擇智慧型手錶的時候都會選擇的華為的品牌,其中華為GT3pro和GT4都是非常熱門的選擇,不少用戶都很好奇華為GT3pro和GT4有什麼區別,下面就給大家介紹一下二者。華為GT3pro和GT4有什麼差別一、外觀GT4:46mm和41mm,材質是玻璃鏡板+不鏽鋼機身+高分纖維後殼。 GT3pro:46.6mm和42.9mm,材質是藍寶石玻璃鏡+鈦金屬機身/陶瓷機身+陶瓷後殼二、健康GT4:採用最新的華為Truseen5.5+演算法,結果會更加的精準。 GT3pro:多了ECG心電圖和血管及安

一封電子郵件的旅程是:MUA:MailUserAgent-郵件使用者代理程式。 (即類似Outlook的電子郵件軟體)MTA:MailTransferAgent-郵件傳輸代理,就是那些Email服務供應商,例如網易、新浪等等。 MDA:MailDeliveryAgent-郵件投遞代理。 Email服務提供者的某個伺服器寄件者->MUA->MTA->MTA->若

為什麼截圖工具在Windows11上不起作用了解問題的根本原因有助於找到正確的解決方案。以下是截圖工具可能無法正常工作的主要原因:對焦助手已開啟:這可以防止截圖工具開啟。應用程式損壞:如果截圖工具在啟動時崩潰,則可能已損壞。過時的圖形驅動程式:不相容的驅動程式可能會幹擾截圖工具。來自其他應用程式的干擾:其他正在運行的應用程式可能與截圖工具衝突。憑證已過期:升級過程中的錯誤可能會導致此issu簡單的解決方案這些適合大多數用戶,不需要任何特殊的技術知識。 1.更新視窗與Microsoft應用程式商店應用程

在許多中心化交易所出現問題後,越來越多的幣圈投資者開始將資產轉移到冷錢包中,以減少中心化交易所帶來的風險。本文將介紹全球最早的冷錢包供應商Trezor,自2014年推出首款冷錢包至今,在全球多個國家銷售。 Trezor的產品包括2014年推出的ModelOne和2018年推出的進階版本ModelT。以下將繼續介紹這兩款產品與其他冷錢包的差異。什麼是Trezor冷錢包? 2014年,Trezor推出了第一款冷皮夾ModelOne。除了常見的BTC、ETH、USDT等幣種外,該錢包還支援超過1000種其

隨著雲端運算技術的不斷發展,資料的備份已經成為了每個企業必須要做的事情。在這樣的背景下,開發一款高可用的雲端備份系統尤其重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發者快速建立高效能的Web應用程式。以下將介紹如何使用Yii框架開發一款高可用的雲端備份系統。設計資料庫模型在Yii框架中,資料庫模型是非常重要的一環。因為資料備份系統需要用到很多的表和關

隨著Web應用需求的不斷增長,開發者在選擇開發框架方面也越來越有選擇的空間。 Symfony和Yii2是兩個備受歡迎的PHP框架,它們都具有強大的功能和效能,但在面對需要開發大型網路應用程式時,哪個框架更適合呢?接下來我們將對Symphony和Yii2進行比較分析,以幫助你更好地進行選擇。基本概述Symphony是一個由PHP編寫的開源Web應用框架,它是建立

隨著互聯網的不斷發展,Web應用程式開發的需求也越來越高。對於開發人員而言,開發應用程式需要一個穩定、高效、強大的框架,這樣可以提高開發效率。 Yii是一款領先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎上進一步優化了效能和程式碼品質。在這篇文章中,我們將介紹如何使用Yii3框架來開發PHP應用程式。

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