1. 程式人生 > >TP5 Validate 驗證 內建規則

TP5 Validate 驗證 內建規則

use think\Validate;

# 驗證某個欄位必須
'name'=>'require'

# 驗證某個欄位的值是否為純數字(採用ctype_digit驗證,不包含負數和小數點)
'num'=>'number'

# 驗證某個欄位的值是否為整數(採用filter_var驗證)
'num'=>'integer'

# 驗證某個欄位的值是否為浮點數字(採用filter_var驗證)
'num'=>'float'

# 驗證某個欄位的值是否為布林值(採用filter_var驗證)
'num'=>'boolean'

# 驗證某個欄位的值是否為email地址(採用filter_var驗證)
'email'=>'email'

# 驗證某個欄位的值是否為陣列
'info'=>'array'

# 驗證某個欄位是否為為 yes, on, 或是 1。這在確認"服務條款"是否同意時很有用,
'accept'=>'accepted'

# 驗證值是否為有效的日期
'date'=>'date'

# 驗證某個欄位的值是否為純字母,
'name'=>'alpha'

# 驗證某個欄位的值是否為字母和數字,
'name'=>'alphaNum'

# 驗證某個欄位的值是否為字母和數字,下劃線_及破折號-,
'name'=>'alphaDash'

# 驗證某個欄位的值只能是漢字,
'name'=>'chs'

# 驗證某個欄位的值只能是漢字、字母,
'name'=>'chsAlpha'

# 驗證某個欄位的值只能是漢字、字母和數字,
'name'=>'chsAlphaNum'

# 驗證某個欄位的值只能是漢字、字母、數字和下劃線_及破折號-,
'name'=>'chsDash'

# 驗證某個欄位的值只能是控制字元(換行、縮排、空格),
'name'=>'cntrl'

# 驗證某個欄位的值只能是可列印字元(空格除外),
'name'=>'graph'

# 驗證某個欄位的值只能是可列印字元(包括空格),
'name'=>'print'

# 驗證某個欄位的值只能是小寫字元,
'name'=>'lower'

# 驗證某個欄位的值只能是大寫字元,
'name'=>'upper'

# 驗證某個欄位的值只能是空白字元(包括縮排,垂直製表符,換行符,回車和換頁字元),
'name'=>'space'

# 驗證某個欄位的值只能是十六進位制字串,
'name'=>'xdigit'

# 驗證某個欄位的值是否為有效的域名或者IP,
'host'=>'activeUrl'

# 驗證某個欄位的值是否為有效的URL地址(採用filter_var驗證),
'url'=>'url'

# 驗證某個欄位的值是否為有效的IP地址(採用filter_var驗證),
'ip'=>'ip'

# 驗證某個欄位的值是否為指定格式的日期,
'create_time'=>'dateFormat:y-m-d'

# 驗證某個欄位的值是否為有效的手機,
'mobile'=>'mobile'

# 驗證某個欄位的值是否為有效的身份證格式,
'id_card'=>'idCard'

# 驗證某個欄位的值是否為有效的MAC地址,
'mac'=>'macAddr'

# 驗證某個欄位的值是否為有效的郵政編碼,
'zip'=>'zip'

# 驗證某個欄位的值是否在某個範圍,
'num'=>'in:1,2,3'

# 驗證某個欄位的值不在某個範圍,
'num'=>'notIn:1,2,3'

# 驗證某個欄位的值不在某個範圍,
'num'=>'between:1,10'

# 驗證某個欄位的值的長度是否在某個範圍
'name'=>'length:4,25'

# 驗證某個欄位的值的最大長度,
'name'=>'max:25'

# 驗證某個欄位的值的最小長度
'name'=>'min:5'

# 驗證某個欄位的值是否在某個日期之後,
'begin_time' => 'after:2016-3-18',

# 驗證某個欄位的值是否在某個日期之前,
'end_time'   => 'before:2016-10-01',

# 驗證當前操作(注意不是某個值)是否在某個有效日期之內,
'expire_time'   => 'expire:2016-2-1,2016-10-01',

# 驗證當前請求的IP是否在某個範圍,
'name'   => 'allowIp:114.45.4.55',

# 驗證當前請求的IP是否禁止訪問
'name'   => 'denyIp:114.45.4.55',

# 驗證某個欄位是否和另外一個欄位的值一致,
'repassword'=>'require|confirm:password'

# 支援欄位自動匹配驗證規則,如password和password_confirm是自動相互驗證的,只需要使用
'password'=>'require|confirm'

# 驗證某個欄位是否和另外一個欄位的值不一致,
'name'=>'require|different:account'

# 驗證是否等於某個值,
'score'=>'eq:100'
'num'=>'=:100'
'num'=>'same:100'

# 驗證是否大於等於某個值,
'score'=>'egt:60'
'num'=>'>=:100'

# 驗證是否大於某個值
'score'=>'gt:60'
'num'=>'>:100'

# 驗證是否小於等於某個值,
'score'=>'elt:100'
'num'=>'<=:100'

# 驗證是否小於某個值,
'score'=>'lt:100'
'num'=>'<:100'

# 驗證對比其他欄位大小(數值大小對比)
'price'=>'lt:market_price'
'price'=>'<:market_price'

# 支援使用filter_var進行驗證,
'ip'=>'filter:validate_ip'

# 支援直接使用正則驗證,
'zip'=>'\d{6}',
// 或者
'zip'=>'regex:\d{6}',
'accepted'=>['regex'=>'/^(yes|on|1)$/i'],

# 驗證是否是一個上傳檔案
# image:width,height,type
# fileExt:允許的檔案字尾
# fileMime:允許的檔案型別
# fileSize:允許的檔案位元組大小

# 驗證當前請求的欄位值是否為唯一的,
# unique:table,field,except,pk
// 表示驗證name欄位的值是否在user表(不包含字首)中唯一
'name'   => 'unique:user',
// 驗證其他欄位
'name'   => 'unique:user,account',
// 排除某個主鍵值
'name'   => 'unique:user,account,10',
// 指定某個主鍵值排除
'name'   => 'unique:user,account,10,user_id',

# 如果需要對複雜的條件驗證唯一
// 多個欄位驗證唯一驗證條件
'name'   => 'unique:user,status^account',
// 複雜驗證條件
'name'   => 'unique:user,status=1&account='.$data['account'],

# 驗證某個欄位的值等於某個值的時候必須
// 當account的值等於1的時候 password必須
'password'=>'requireIf:account,1'

# 驗證某個欄位有值的時候必須
// 當account有值的時候password欄位必須
'password'=>'requireWith:account'

# 驗證當某個callable為真的時候欄位必須,
// 使用check_require方法檢查是否需要驗證age欄位必須
'age'=>'requireCallback:check_require|number'

行為驗證
'data'=>'behavior:\app\index\behavior\Check'