Yii2驗證器(Validator)用法分析

字號:


    本文實例講述了Yii2驗證器(Validator)用法。分享給大家供大家參考,具體如下:
    先看一下驗證器的使用。
    public function rules()
    {
      return [
        [['email', 'password'], 'required'],
        ['password', 'string', 'min'=>6],
      ];
    }
    如上所示,驗證器主要使用在rules里面,對當前model里面的屬性值進行驗證以檢查是否滿足某種要求。
    驗證器使用格式:
    書寫格式為:[需要驗證的屬性,驗證器名稱,驗證器參數(shù)]。
    如果需要驗證的屬性為多個可用數(shù)組,如果為一個屬性可用字符串也可用數(shù)組來表示。
    每個屬性都可以有多個驗證器,如上面的password使用了 required和string兩個驗證器。
    常用驗證器:
    Yii2已經(jīng)內(nèi)置了一些常用的驗證器。所有的驗證器都從基類yii\validators\Validator繼承實現(xiàn)。我大概總結下有這么幾類。
    數(shù)字相關:
    integer——整數(shù)
    用來檢測屬性值是否為整數(shù),以及最大、最小值檢測等。(yii\validators\NumberValidator)
    double——浮點
    用來檢測屬性值是否為浮點數(shù),即小數(shù)。(yii\validators\NumberValidator)
    number——數(shù)字
    這個和上面的double完全相同,只是用了2個名稱。(yii\validators\NumberValidator)
    格式相關:
    date——日期
    檢驗屬性值是否為正確的日期格式。(yii\validators\DateValidator)
    email——郵件
    檢測屬性值是否是正確的電子郵件格式。(yii\validators\EmailValidator)
    url——URL
    用來判斷屬性值是否是正確的url地址。(yii\validators\UrlValidator)
    對值進行函數(shù)處理:
    filter——過濾器
    這個是對屬性值進行加工處理的。如對屬性值加前綴、替換特定的字符串等等。(yii\validators\FilterValidator)
    trim——裁邊
    這個是對屬性值進行加工處理的。只是去掉字符串兩側(cè)的空格、或指定的字符串。(yii\validators\FilterValidator)
    上傳文件驗證:
    file——文件
    這個主要是對上傳的文件進行驗證,如格式、大小等。(yii\validators\FileValidator)
    image——圖片
    這個和上面的file驗證器差不多,不過是專門用來驗證圖片的。(yii\validators\ImageValidator)
    判斷比較:
    compare——比較
    用來對兩個屬性值進行比較,如相等、大于、小于比較等。(yii\validators\CompareValidator)
    in——包含(范圍)
    用來檢測屬性值是否包含在指定的數(shù)組中。(yii\validators\RangeValidator)
    exist——存在
    用來檢測在數(shù)據(jù)表中是否已經(jīng)存在此屬性值。(yii\validators\ExistValidator)
    unique——唯一性
    這個和exist差不多,用來檢測值是否是唯一。(yii\validators\UniqueValidator)
    string——字符串
    對屬性值進行長度判斷,如最大長度、最短長度等。(yii\validators\StringValidator)
    boolean——布爾型
    用來檢查屬性的值是否為布爾值。(yii\validators\BooleanValidator)
    default——默認值
    這個是用來給屬性設置默認值的。如當屬性值為null的時候,給它設置為 空的默認值。(yii\validators\DefaultValueValidator)
    required——必填
    這個用來檢查屬性值是否為空。(yii\validators\RequiredValidator)
    captcha——驗證碼
    這個主要是在界面使用驗證碼的時候?qū)︱炞C碼進行驗證的。(yii\captcha\CaptchaValidator)
    match——正則表達式
    這個就比較強大了,用來檢測屬性值是否匹配給出的正則。上面所列出的基本都可以用這個實現(xiàn)。(yii\validators\RegularExpressionValidator)
    其它:
    safe——安全
    這個不進行驗證,僅僅用來指定屬性值是安全的。(yii\validators\SafeValidator)
    希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。