91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Yii 2 —— 字段校驗

發布時間:2020-04-23 06:05:28 來源:網絡 閱讀:2595 作者:tywali 欄目:開發技術

1.1  字段校驗

1.1.1  簡介

開發Web應用有一個很重要的原則,就是不要相信任何輸入的數據,在使用之前必須要進行有效性檢查,否則很有可能會引發各種安全性問題。Yii 2當然也不會忽略這個問題,提供了校驗器這一有力的工具,該工具可同時提供客戶端和服務器端的數據校驗。

1.1.2  使用方法

Model內,重載rules()接口,配置每個字段的規則,如下(以LoginForm為例):

public function rules()
 {
    
return [
        
// username and password are both required
        
[['username', 'password'], 'required'],
        
// rememberMe must be a boolean value
        
['rememberMe', 'boolean'],
        
// password is validated by validatePassword()
        
['password', 'validatePassword'],
    
];
 
}

 

每一行中,前面是字段名稱,最后一個元素是規則的名稱。這些規則最終是通過“校驗器”來完成校驗的。當然內置的校驗器肯定不能夠全部滿足需求,因此Yii 2在根據規則名稱創建校驗器的時候,會首先檢查該Model中是否有跟規則名稱相同的函數,如果有,則校驗規則的時候就直接用該函數來完成校驗,譬如上面代碼中的“validatePassword”規則,在LoginForm中就有接口:

public function validatePassword($attribute, $params)
 {
    
if (!$this->hasErrors()) {
        
$user = $this->getUser();
         if
(!$user || !$user->validatePassword($this->password)) {
            
$this->addError($attribute, '賬號或密碼輸入錯誤。');
        
}
     }
 }

 

1.1.3  內置校驗器

Yii 2中,校驗器存放于vendor\yiisoft\yii2\validators目錄下,有如下內置校驗器(這些校驗器沒有全部都用過,這里列出來功能,細節待用到的時候再研究):

boolean

檢測輸入值是否為boolean類型

captcha

檢測輸入的校驗碼是否正確,這個需要與yii\captcha\CaptchaAction一起使用

compare

與指定值進行比較,確認兩者是否符合比較條件(如:>==<=),譬如注冊時會要求輸入兩次密碼,要比較這兩次輸入的密碼是否相同

date

檢測輸入值是否為date類型

datetime

檢測輸入值是否為datetime類型

time

檢測輸入值是否為time類型

default

這個實際上不是一個校驗器,是當某個屬性為空時,提供默認值用的

double

檢測輸入值是否為double類型

each

對輸入的一組數據進行校驗

email

檢測輸入值是否為email地址

exist

判斷輸入的值是否在數據庫中存在,常用于檢查某個值在外鍵中是否存在

file

檢測輸入值是否為文件

filter

將輸入值轉換為另一個值,它實際上不是個校驗器。

p_w_picpath

檢測輸入值是否為圖片

in

檢測輸入值是否在指定的列表中

integer

檢測輸入值是否為integer類型

match

使用正則表達式檢查輸入值

required

檢測輸入值是否為空

safe

標志輸入的字段是否可信,YiiModel的每個字段都要求必須要有校驗器,但是有時候有些字段的確不需要,譬如主鍵ID

string

檢測輸入值是否為string類型

trim

這實際上是一個轉換器,去除掉輸入的前后空格

unique

檢測輸入值在表中是否唯一

url

檢測輸入值是否為URL

ip

檢測輸入值是否為IP地址

 

1.1.4  自定義校驗器

參考文獻:

1、http://www.cnblogs.com/yhdsir/p/5181938.html

 

新建一個文件:

?php

namespace common\helps;

 

use yii\validators\Validator;

 

class ArrayValidator extends Validator

{

    publicfunction validateAttribute($model, $attribute)

    {

        if (!is_array($model->$attribute)) {

            $this->addError($model, $attribute, $attribute . '必須是一個數組');

        }

    }

}

                            Yii 2 —— 字段校驗

 

使用的時候:

Yii 2 —— 字段校驗

publicfunction rules()

{

    return [

        ...

        ['kind_ids','common\helps\ArrayValidator'], // 自定義驗證

        ...

    ];

}

 


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿鲁科尔沁旗| 大埔区| 上思县| 维西| 固安县| 琼中| 崇阳县| 镶黄旗| 西贡区| 循化| 鄂温| 阜南县| 扬州市| 万宁市| 武夷山市| 鸡西市| 田林县| 静乐县| 商城县| 绥德县| 辽阳市| 牟定县| 林芝县| 马边| 丹凤县| 迁安市| 景宁| 吉木乃县| 龙胜| 上思县| 安远县| 灌云县| 乡宁县| 芦山县| 明光市| 绥中县| 紫阳县| 孝昌县| 台北市| 肇东市| 丰都县|