laravel验证规则

 

规则

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''

before:date

验证字段必须是指定日期之前的一个数值

//验证日期必须是名字之前的日期,比如你的验证值是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

验证字段数值长度必须介于最小值和最大值之间,必须是数字

dimensions

验证的图片尺寸必须满足该规定参数指定的约束条件:

distinct

处理数组时,验证字段不能包含重复值:

'foo.*.id' => 'distinct'

email

验证字段必须是格式化的电子邮件地址

exists:table,column

验证字段的值必须存在于数据表

//验证数据表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

该验证字段必须是上传成功的文件

filled

该验证字段如果存在则不能为空

image

验证文件必须是图片(jpeg、png、bmp、gif或者svg)

in:foo,bar…

验证字段值必须在给定的列表中

    'name'=>'in:kongqi,bst',

not_in:foo,bar,…

验证字段值不在给定列表中

in_array

验证字段必须在另一个字段中存在

     'name'=>'in_array:name_confirmation',

integer

验证字段必须是整型

ip

验证字段必须是IP地址

JSON

验证字段必须是有效的JSON字符串

size:value

验证字段必须有和给定值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!",
        ],

    ],

 

你可能感兴趣的:(PHP,laravel)