Yii2驗(yàn)證器(Validator)用法分析
本文實(shí)例講述了Yii2驗(yàn)證器(Validator)用法。分享給大家供大家參考,具體如下:
先看一下驗(yàn)證器的使用。
public function rules() { return [ [['email', 'password'], 'required'], ['password', 'string', 'min'=>6], ]; }
如上所示,驗(yàn)證器主要使用在rules里面,對(duì)當(dāng)前model里面的屬性值進(jìn)行驗(yàn)證以檢查是否滿足某種要求。
驗(yàn)證器使用格式:
書寫格式為:[需要驗(yàn)證的屬性,驗(yàn)證器名稱,驗(yàn)證器參數(shù)]。
如果需要驗(yàn)證的屬性為多個(gè)可用數(shù)組,如果為一個(gè)屬性可用字符串也可用數(shù)組來(lái)表示。
每個(gè)屬性都可以有多個(gè)驗(yàn)證器,如上面的password使用了 required和string兩個(gè)驗(yàn)證器。
常用驗(yàn)證器:
Yii2已經(jīng)內(nèi)置了一些常用的驗(yàn)證器。所有的驗(yàn)證器都從基類yii\validators\Validator繼承實(shí)現(xiàn)。我大概總結(jié)下有這么幾類。
數(shù)字相關(guān):
integer——整數(shù)
用來(lái)檢測(cè)屬性值是否為整數(shù),以及最大、最小值檢測(cè)等。(yii\validators\NumberValidator)
double——浮點(diǎn)
用來(lái)檢測(cè)屬性值是否為浮點(diǎn)數(shù),即小數(shù)。(yii\validators\NumberValidator)
number——數(shù)字
這個(gè)和上面的double完全相同,只是用了2個(gè)名稱。(yii\validators\NumberValidator)
格式相關(guān):
date——日期
檢驗(yàn)屬性值是否為正確的日期格式。(yii\validators\DateValidator)
email——郵件
檢測(cè)屬性值是否是正確的電子郵件格式。(yii\validators\EmailValidator)
url——URL
用來(lái)判斷屬性值是否是正確的url地址。(yii\validators\UrlValidator)
對(duì)值進(jìn)行函數(shù)處理:
filter——過(guò)濾器
這個(gè)是對(duì)屬性值進(jìn)行加工處理的。如對(duì)屬性值加前綴、替換特定的字符串等等。(yii\validators\FilterValidator)
trim——裁邊
這個(gè)是對(duì)屬性值進(jìn)行加工處理的。只是去掉字符串兩側(cè)的空格、或指定的字符串。(yii\validators\FilterValidator)
上傳文件驗(yàn)證:
file——文件
這個(gè)主要是對(duì)上傳的文件進(jìn)行驗(yàn)證,如格式、大小等。(yii\validators\FileValidator)
image——圖片
這個(gè)和上面的file驗(yàn)證器差不多,不過(guò)是專門用來(lái)驗(yàn)證圖片的。(yii\validators\ImageValidator)
判斷比較:
compare——比較
用來(lái)對(duì)兩個(gè)屬性值進(jìn)行比較,如相等、大于、小于比較等。(yii\validators\CompareValidator)
in——包含(范圍)
用來(lái)檢測(cè)屬性值是否包含在指定的數(shù)組中。(yii\validators\RangeValidator)
exist——存在
用來(lái)檢測(cè)在數(shù)據(jù)表中是否已經(jīng)存在此屬性值。(yii\validators\ExistValidator)
unique——唯一性
這個(gè)和exist差不多,用來(lái)檢測(cè)值是否是唯一。(yii\validators\UniqueValidator)
string——字符串
對(duì)屬性值進(jìn)行長(zhǎng)度判斷,如最大長(zhǎng)度、最短長(zhǎng)度等。(yii\validators\StringValidator)
boolean——布爾型
用來(lái)檢查屬性的值是否為布爾值。(yii\validators\BooleanValidator)
default——默認(rèn)值
這個(gè)是用來(lái)給屬性設(shè)置默認(rèn)值的。如當(dāng)屬性值為null的時(shí)候,給它設(shè)置為 空的默認(rèn)值。(yii\validators\DefaultValueValidator)
required——必填
這個(gè)用來(lái)檢查屬性值是否為空。(yii\validators\RequiredValidator)
captcha——驗(yàn)證碼
這個(gè)主要是在界面使用驗(yàn)證碼的時(shí)候?qū)︱?yàn)證碼進(jìn)行驗(yàn)證的。(yii\captcha\CaptchaValidator)
match——正則表達(dá)式
這個(gè)就比較強(qiáng)大了,用來(lái)檢測(cè)屬性值是否匹配給出的正則。上面所列出的基本都可以用這個(gè)實(shí)現(xiàn)。(yii\validators\RegularExpressionValidator)
其它:
safe——安全
這個(gè)不進(jìn)行驗(yàn)證,僅僅用來(lái)指定屬性值是安全的。(yii\validators\SafeValidator)
更多關(guān)于Yii相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結(jié)》、《php優(yōu)秀開發(fā)框架總結(jié)》、《smarty模板入門基礎(chǔ)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。
- yii2 modal彈窗之ActiveForm ajax表單異步驗(yàn)證
- Yii2增加驗(yàn)證碼步驟詳解
- yii2中的rules 自定義驗(yàn)證規(guī)則詳解
- Yii2使用駝峰命名的形式訪問(wèn)控制器(實(shí)例講解)
- Yii2設(shè)置默認(rèn)控制器的兩種方法
- Yii2使用$this->context獲取當(dāng)前的Module、Controller(控制器)、Action等
- Yii2創(chuàng)建控制器(createController)方法詳解
- yii2控制器Controller Ajax操作示例
- yii2 在控制器中驗(yàn)證請(qǐng)求參數(shù)的使用方法
相關(guān)文章
thinkphp3.2實(shí)現(xiàn)跨控制器調(diào)用其他模塊的方法
這篇文章主要介紹了thinkphp3.2實(shí)現(xiàn)跨控制器調(diào)用其他模塊的方法,結(jié)合實(shí)例形式分析了thinkPHP跨模塊、跨控制器調(diào)用方法的常見操作技巧,需要的朋友可以參考下2017-03-03PHP頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)延時(shí)跳轉(zhuǎn)的方法
下面小編就為大家?guī)?lái)一篇PHP頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)延時(shí)跳轉(zhuǎn)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12PHP FTP操作類代碼( 上傳、拷貝、移動(dòng)、刪除文件/創(chuàng)建目錄)
這篇文章主要介紹了php中實(shí)現(xiàn)FTP功能,包括上傳,拷貝,移動(dòng),刪除文件與創(chuàng)建目錄功能,需要的朋友可以參考下2014-05-05laravel框架之?dāng)?shù)據(jù)庫(kù)查出來(lái)的對(duì)象實(shí)現(xiàn)轉(zhuǎn)化為數(shù)組
今天小編就為大家分享一篇laravel框架之?dāng)?shù)據(jù)庫(kù)查出來(lái)的對(duì)象實(shí)現(xiàn)轉(zhuǎn)化為數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10php使用phpoffice/phpspreadsheet拓展操作excel實(shí)例
這篇文章主要為大家介紹了php使用phpoffice/phpspreadsheet拓展操作excel實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11