TP5 Validate 驗證 內建規則
阿新 • • 發佈:2018-12-06
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'