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>
- : = Html::encode($model->name) ?>
- : = Html::encode($model->email) ?>
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 = ActiveForm::begin(); ?> = <span>$form</span>->field(<span>$model</span>, 'name') ?> = <span>$form</span>->field(<span>$model</span>, 'email') ?> <div>class="form-group"> = Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::<span>end(); ?>
視圖使用了一個功能強大的小部件 [[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教學有興趣的朋友有幫助。

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版
SublimeText3 Linux最新版

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

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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