格式验证类
格式验证类在使用静态方法调用的时间支持两种方式调用(以number 验证为例,可以使用number() 大概isNumber() )。
require
验证某个字段必须,比方:
'name'=>'require'
如果验证规则没有添加require 就体现没有值的话不举行验证
由于require 属于PHP保存字,以是在使用方法验证的时间必须使用isRequire 大概must 方法调用。
number
验证某个字段的值是否为纯数字(采取ctype_digit 验证,不包罗负数和小数点),比方:
'num'=>'number'
integer
验证某个字段的值是否为整数(采取filter_var 验证),比方:
'num'=>'integer'
float
验证某个字段的值是否为浮点数字(采取filter_var 验证),比方:
'num'=>'float'
boolean 大概 bool
验证某个字段的值是否为布尔值(采取filter_var 验证),比方:
'num'=>'boolean'
email
验证某个字段的值是否为email所在(采取filter_var 验证),比方:
'email'=>'email'
array
验证某个字段的值是否为数组,比方:
'info'=>'array'
accepted
验证某个字段是否为为 yes, on, 或是 1。这在确认"服务条款"是否同意时很有用,比方:
'accept'=>'accepted'
date
验证值是否为有用的日期,比方:
'date'=>'date'
会对日期值举行strtotime 后举行判断。
alpha
验证某个字段的值是否为纯字母,比方:
'name'=>'alpha'
alphaNum
验证某个字段的值是否为字母和数字,比方:
'name'=>'alphaNum'
alphaDash
验证某个字段的值是否为字母和数字,下划线_ 及破折号- ,比方:
'name'=>'alphaDash'
chs
验证某个字段的值只能是汉字,比方:
'name'=>'chs'
chsAlpha
验证某个字段的值只能是汉字、字母,比方:
'name'=>'chsAlpha'
chsAlphaNum
验证某个字段的值只能是汉字、字母和数字,比方:
'name'=>'chsAlphaNum'
chsDash
验证某个字段的值只能是汉字、字母、数字和下划线_及破折号-,比方:
'name'=>'chsDash'
cntrl(V5.1.17+ )
验证某个字段的值只能是控制字符(换行、缩进、空格),比方:
'name'=>'cntrl'
graph (V5.1.17+ )
验证某个字段的值只能是可打印字符(空格除外),比方:
'name'=>'graph'
print (V5.1.17+ )
验证某个字段的值只能是可打印字符(包罗空格),比方:
'name'=>'print'
lower (V5.1.17+ )
验证某个字段的值只能是小写字符,比方:
'name'=>'lower'
upper (V5.1.17+ )
验证某个字段的值只能是大写字符,比方:
'name'=>'upper'
space (V5.1.17+ )
验证某个字段的值只能是空缺字符(包罗缩进,垂直制表符,换行符,回车和换页字符),比方:
'name'=>'space'
xdigit (V5.1.17+ )
验证某个字段的值只能是十六进制字符串,比方:
'name'=>'xdigit'
activeUrl
验证某个字段的值是否为有用的域名大概IP,比方:
'host'=>'activeUrl'
url
验证某个字段的值是否为有用的URL所在(采取filter_var 验证),比方:
'url'=>'url'
ip
验证某个字段的值是否为有用的IP所在(采取filter_var 验证),比方:
'ip'=>'ip'
支持验证ipv4和ipv6格式的IP所在。
dateFormat:format
验证某个字段的值是否为指定格式的日期,比方:
'create_time'=>'dateFormat:y-m-d'
mobile
验证某个字段的值是否为有用的手机,比方:
'mobile'=>'mobile'
idCard
验证某个字段的值是否为有用的身份证格式,比方:
'id_card'=>'idCard'
macAddr
验证某个字段的值是否为有用的MAC所在,比方:
'mac'=>'macAddr'
zip
验证某个字段的值是否为有用的邮政编码,比方:
'zip'=>'zip'
长度和区间验证类
in
验证某个字段的值是否在某个范围,比方:
'num'=>'in:1,2,3'
notIn
验证某个字段的值不在某个范围,比方:
'num'=>'notIn:1,2,3'
between
验证某个字段的值是否在某个区间,比方:
'num'=>'between:1,10'
notBetween
验证某个字段的值不在某个范围,比方:
'num'=>'notBetween:1,10'
length:num1,num2
验证某个字段的值的长度是否在某个范围,比方:
'name'=>'length:4,25'
大概指定长度
'name'=>'length:4'
如果验证的数据是数组,则判断数组的长度。
如果验证的数据是File对象,则判断文件的巨细。
max:number
验证某个字段的值的最大长度,比方:
'name'=>'max:25'
如果验证的数据是数组,则判断数组的长度。
如果验证的数据是File对象,则判断文件的巨细。
min:number
验证某个字段的值的最小长度,比方:
'name'=>'min:5'
如果验证的数据是数组,则判断数组的长度。
如果验证的数据是File对象,则判断文件的巨细。
after:日期
验证某个字段的值是否在某个日期之后,比方:
'begin_time' => 'after:2016-3-18',
before:日期
验证某个字段的值是否在某个日期之前,比方:
'end_time' => 'before:2016-10-01',
expire:开始时间,竣事时间
验证当前利用(注意不是某个值)是否在某个有用日期之内,比方:
'expire_time' => 'expire:2016-2-1,2016-10-01',
allowIp:allow1,allow2,...
验证当前哀求的IP是否在某个范围,比方:
'name' => 'allowIp:114.45.4.55',
该规则可以用于某个背景的访问权限,多个IP用逗号分隔
denyIp:allow1,allow2,...
验证当前哀求的IP是否克制访问,比方:
'name' => 'denyIp:114.45.4.55',
多个P用逗号分隔
字段比力类
confirm
验证某个字段是否和别的一个字段的值同等,比方:
'repassword'=>'require|confirm:password'
支持字段自动匹配验证规则,如password 和password_confirm 是自动相互验证的,只必要使用
'password'=>'require|confirm'
会自动验证和password_confirm 举行字段比力是否同等,反之亦然。
different
验证某个字段是否和别的一个字段的值不同等,比方:
'name'=>'require|different:account'
eq 大概 = 大概 same
验证是否便是某个值,比方:
'score'=>'eq:100'
'num'=>'=:100'
'num'=>'same:100'
egt 大概 >=
验证是否大于便是某个值,比方:
'score'=>'egt:60'
'num'=>'>=:100'
gt 大概 >
验证是否大于某个值,比方:
'score'=>'gt:60'
'num'=>'>:100'
elt 大概 <=
验证是否小于便是某个值,比方:
'score'=>'elt:100'
'num'=>'<=:100'
lt 大概 <
验证是否小于某个值,比方:
'score'=>'lt:100'
'num'=>'<:100'
字段比力
验证对比其他字段巨细(数值巨细对比),比方:
'price'=>'lt:market_price'
'price'=>'<:market_price'
filter验证
支持使用filter_var 举行验证,比方:
'ip'=>'filter:validate_ip'
正则验证
支持直接使用正则验证,比方:
'zip'=>'\d{6}',
// 大概
'zip'=>'regex:\d{6}',
如果你的正则表达式中包罗有| 符号的话,必须使用数组方式界说。
'accepted'=>['regex'=>'/^(yes|on|1)$/i'],
也可以实现预界说正则表达式后直接调用,比方在验证器类中界说regex属性
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $regex = [ 'zip' => '\d{6}'];
protected $rule = [
'name' => 'require|max:25',
'email' => 'email',
];
}
然后就可以使用
'zip' => 'regex:zip',
上传验证
file
验证是否是一个上传文件
image:width,height,type
验证是否是一个图像文件,width height和type都是可选,width和height必须同时界说。
fileExt:答应的文件后缀
验证上传文件后缀
fileMime:答应的文件范例
验证上传文件范例
fileSize:答应的文件字节巨细
验证上传文件巨细
活动验证
使用活动验证数据,比方:
'data'=>'behavior:\app\index\behavior\Check'
别的验证
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'],
requireIf:field,value
验证某个字段的值便是某个值的时间必须,比方:
// 当account的值便是1的时间 password必须
'password'=>'requireIf:account,1'
requireWith:field
验证某个字段有值的时间必须,比方:
// 当account有值的时间password字段必须
'password'=>'requireWith:account'
requireCallback:callable
验证当某个callable为真的时间字段必须,比方:
// 使用check_require方法查抄是否必要验证age字段必须
'age'=>'requireCallback:check_require|number'
用于查抄是否必要验证的方法支持两个参数,第一个参数是当前字段的值,第二个参数则是全部的数据。
function check_require($value, $data){
if(empty($data['birthday'])){
return true;
}
}
只有check_require函数返回true的时间age字段是必须的,而且会举行后续的别的验证。 ShopWT(www.shopwt.com)是国内知名商城系统及商城网站建设提供商,其中销客多小程序系统为商家提供小程序商城开发、小程序分销系统、微分销系统、商城系统、电商网站建设、微信分销系统、小程序商城等多端商城及电子商务行业解决方案> 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |