accepted
该字段的值必须是yes、on、1或true.必填规则
'is_read'=>'accepted'
active_url
必须是一个基于PHP函数checkdnsrr 的有效URL,
可以认为是存在的一个域名地址
'url'=>'active_url'
after:date
给定日期之后的日期
//验证日期必须是名字之后的日期,比如你的验证值是2015-05-25 10:23:15
'start_date' => 'required|date|after:tomorrow'
//验证2018-05-26之后日期
'start_date'=>''after:2018-05-26''
验证字段必须是指定日期之前的一个数值
//验证日期必须是名字之前的日期,比如你的验证值是2015-05-25 10:23:15
'start_date' => 'required|date|after:tomorrow'
//验证2018-05-26之前日期
'start_date'=>''after:2018-05-26''
alpha,
该字段必须是字母,类似正则[a-zA-Z]
'ename'=>'alpha'
alpha_dash
该字段可以包含字母和数字,以及破折号和下划线,类似正则\w
alpha_num
该字段必须是字母或数字
array
该字段必须是PHP数组
between:min,max
验证字段尺寸在给定的最小值和最大值之间,字符串、数值和文件都可以使用该规则
表示字符长度,中文也按字数算
'name'=>'between:10,100|required'
boolean
字段必须可以被转化为boolean,接收true, false, 1,0, "1", 和 "0"等输入
confirmed
验证字段必须有一个匹配字段,比如确认密码之类
需要2个表单名字,例如一个叫name,另外一个必须是name_confirmation
‘name’=>'confirmed'
date
验证有效的日期。
//2018-05-24 11:40:26验证通过,
‘age_date’=>'date'
date_format:format
验证字段必须匹配指定格式,
//2018-05-24 验证通过,2018-05-24 18:0:0 验证不通过
‘age_date’=>'date_format:Y-m-d'
different:field
验证字段必须是一个和指定字段不同的值,跟这个confirmed相反
digits:value
必须是数字且长度为value指定的值
'age'=>'digits:2'
digits_between:min,max
验证字段数值长度必须介于最小值和最大值之间,必须是数字
验证的图片尺寸必须满足该规定参数指定的约束条件:
distinct
处理数组时,验证字段不能包含重复值:
'foo.*.id' => 'distinct'
验证字段必须是格式化的电子邮件地址
验证字段的值必须存在于数据表
//验证数据表users的name字段是否存在你给的值,如果存在则通过
'name' => 'exists:users,name'
条件到where查询子句
'email' => 'exists:staff,email,account_id,1'
'email' => 'exists:staff,email,role,!admin'
'email' => 'exists:staff,email,deleted_at,NULL'
'email' => 'exists:staff,email,deleted_at,NOT_NULL'
后面2个参数是条件,deleted_at is null
file
该验证字段必须是上传成功的文件
该验证字段如果存在则不能为空
image
验证文件必须是图片(jpeg、png、bmp、gif或者svg)
in:foo,bar…
验证字段值必须在给定的列表中
'name'=>'in:kongqi,bst',
not_in:foo,bar,…
验证字段值不在给定列表中
in_array
验证字段必须在另一个字段中存在
'name'=>'in_array:name_confirmation',
验证字段必须是整型
验证字段必须是IP地址
JSON
验证字段必须是有效的JSON字符串
验证字段必须有和给定值value相匹配的尺寸,对字符串而言,value是相应的字符数目;对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数
max:value
验证字段必须小于等于最大值,和字符串、数值、文件字段的size规则一起使用
min:value
验证字段的最小值,对字符串、数值、文件字段而言,和size规则使用方式一致。
mimetypes:text/plain…
string
验证字段必须是字符串
unique:table,column,except(忽略的字段值),idColumn(默认忽略是ID字段)
验证字段在给定数据表上必须是唯一的,如果不指定column选项,字段名将作为默认column。
指定自定义列名:
'email' => 'unique:users,email_address'
自定义数据库连接
'email' => 'unique:connection.users,email_address'
强制一个唯一规则来忽略给定ID:
'email' => 'unique:users,email_address,'.$user->id
//如果你的数据表使用主键字段不是id,可以指定第四个输入参数:
'email' => 'unique:users,email_address,'.$user->id.',user_id'
//添加额外的where子句:
//只有account_id为1记录才会进行唯一性检查。
'email' => 'unique:users,email_address,NULL,id,account_id,1'
numeric
验证字段必须是数值
string
验证字段必须是字符串
present
验证字段必须出现在输入数据中但可以为空。
regex:pattern
验证字段必须匹配给定正则表达式
规则必须放在数组中
'name'=>[
'regex:/\d/',
'required',
],
required
输入字段值不能为空,以下情况字段值都为空:
值为null
值是空字符串
值是空数组或者空的Coutable对象
值是上传文件但路径为空
required_if:anotherfield,value,…
验证字段在另一个字段等于指定值value时是必须的
'name'=>[
//假如name_confirmation的值=2就name就必填
'required_if:name_confirmation,2',
],
required_unless:anotherfield,value,…
除了 anotherfield 字段等于value,验证字段不能空
'name'=>[
//假如name_confirmation的值!=2就name就必填
'required_unless:name_confirmation,2',
],
required_with:foo,bar,…
验证字段只有在任一其它指定字段存在的话才是必须的
'name'=>[
//如果其他name_confirmation表单字段存在值,则name需要必填
'required_with:name_confirmation'
],
required_with_all:foo,bar,…
验证字段只有在所有指定字段存在的情况下才是必须的
required_without:foo,bar,…
验证字段只有当任一指定字段不存在的情况下才是必须的
required_without_all:foo,bar,…
验证字段只有当所有指定字段不存在的情况下才是必须的
providers注册
app/Providers/AppServiceProvider.php
//引入命名
use Validator;
public function boot()
{
Validator::extend('foo', function($attribute, $value, $parameters, $validator) {
return $value == 'foo';
});
}
$attribute 属性名字, $value值,$parameters参数,$validator验证实例
注册类
public function boot()
{
Validator::extend('foo', 'FooValidator@validate');
}
定义错误信息
在语言包里面的验证文件的custom下数组定义,比如
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
'name'=>[
'alpha'=>' bi xi shi zimu',
"foo" => "Your input was invalid!",
],
],