yii2---應用結構----model----驗證規則
1.概念:輸入的資料,假定ContactForm
模型,(首頁的http://y2aa-frontend.test/index.php?r=site%2Fcontact)
你可能想確保所有屬性不為空且 email
屬性包含一個有效的郵箱地址,
如果某個屬性的值不滿足對應的業務規則,
相應的錯誤資訊應顯示,以幫助使用者修正錯誤。
(http://y2aa-frontend.test/index.php?r=site%2Fcontact頁面)
2.可呼叫 yii\base\Model::validate() 來驗證接收到的資料是否為空,
該方法使用
如果沒有找到錯誤,會返回 true, 否則它會將錯誤儲存在 yii\base\Model::$errors 屬性中並返回false
(首頁驗證此段程式碼。瀏覽器輸入url http://y2aa-frontend.test/index.php?r=site%2Findex)
(frontend/web/index.php中寫的)
$model = new \frontend\models\ContactForm;//例項化模型類(可以打印出來結果的) // 將使用者輸入的資料---賦值給模型屬性(attributes) $model->attributes = \Yii::$app->request->post('ContactForm'); echo '<pre>'; //var_dump($model->attributes);(包含所有屬性的值 name,) echo '</pre>'; if ($model->validate()) { // 所有輸入資料都有效 all inputs are valid echo 111111; } else { // 驗證失敗列印錯誤資訊:$errors 是一個包含錯誤資訊的陣列 echo $errors = $model->errors; }
(//var_dump($model->attributes);(包含所有屬性的值 name,)的結果)
(http://y2aa-frontend.test/index.php?r=site%2Findex)
(echo $errors = $model->errors;的結果)
(http://y2aa-frontend.test/index.php?r=site%2Findex)
3.不同情景下,使用不同的的驗證規則。
(frontend/models/contactform.php)
(frontend/web/index.php中寫的)
$model = new \frontend\models\ContactForm; // 使用者輸入資料賦值到模型屬性 $model->attributes = \Yii::$app->request->post('ContactForm'); echo '<pre>'; //var_dump($model->attributes); echo '</pre>'; if ($model->validate()) { // 所有輸入資料都有效 all inputs are valid echo 111111; } else { // 驗證失敗:$errors 是一個包含錯誤資訊的陣列 echo $errors = $model->errors; }
((http://y2aa-frontend.test/index.php?r=site%2Findex))