Yii2驗證器(Validator)用法分析

來源:互聯網
上載者:User
這篇文章主要介紹了Yii2驗證器(Validator)用法,結合執行個體形式分析了Yii2驗證器(Validator)的相關功能、格式、使用方法及注意事項,需要的朋友可以參考下

本文執行個體講述了Yii2驗證器(Validator)用法。分享給大家供大家參考,具體如下:

先看一下驗證器的使用。

public function rules(){  return [    [['email', 'password'], 'required'],    ['password', 'string', 'min'=>6],  ];}

如上所示,驗證器主要使用在rules裡面,對當前model裡面的屬性值進行驗證以檢查是否滿足某種要求。

驗證器使用格式:

書寫格式為:[需要驗證的屬性,驗證器名稱,驗證器參數]。

如果需要驗證的屬性為多個可用數組,如果為一個屬性可用字串也可用數組來表示。

每個屬性都可以有多個驗證器,如上面的password使用了 required和string兩個驗證器。

常用驗證器:

Yii2已經內建了一些常用的驗證器。所有的驗證器都從基類yii\validators\Validator繼承實現。我大概總結下有這麼幾類。

數字相關:

integer——整數
用來檢測屬性值是否為整數,以及最大、最小值檢測等。(yii\validators\NumberValidator)

double——浮點
用來檢測屬性值是否為浮點數,即小數。(yii\validators\NumberValidator)

number——數字
這個和上面的double完全相同,只是用了2個名稱。(yii\validators\NumberValidator)

格式相關:

date——日期
檢驗屬性值是否為正確的日期格式。(yii\validators\DateValidator)

email——郵件
檢測屬性值是否是正確的電子郵件格式。(yii\validators\EmailValidator)

url——URL
用來判斷屬性值是否是正確的url地址。(yii\validators\UrlValidator)

對值進行函數處理:

filter——過濾器
這個是對屬性值進行加工處理的。如對屬性值加首碼、替換特定的字串等等。(yii\validators\FilterValidator)

trim——裁邊
這個是對屬性值進行加工處理的。只是去掉字串兩側的空格、或指定的字串。(yii\validators\FilterValidator)

上傳檔案驗證:

file——檔案
這個主要是對上傳的檔案進行驗證,如格式、大小等。(yii\validators\FileValidator)

image——圖片
這個和上面的file驗證器差不多,不過是專門用來驗證圖片的。(yii\validators\ImageValidator)

判斷比較:

compare——比較
用來對兩個屬性值進行比較,如相等、大於、小於比較等。(yii\validators\CompareValidator)

in——包含(範圍)
用來檢測屬性值是否包含在指定的數組中。(yii\validators\RangeValidator)

exist——存在
用來檢測在資料表中是否已經存在此屬性值。(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——驗證碼
這個主要是在介面使用驗證碼的時候對驗證碼進行驗證的。(yii\captcha\CaptchaValidator)

match——Regex
這個就比較強大了,用來檢測屬性值是否匹配給出的正則。上面所列出的基本都可以用這個實現。(yii\validators\RegularExpressionValidator)

其它:

safe——安全
這個不進行驗證,僅僅用來指定屬性值是安全的。(yii\validators\SafeValidator)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.