return [
'accepted' => '必须为yes,on,1,true',
'active_url' => '是否是一个合法的url,基于PHP的checkdnsrr函数,因此也可以用来验证邮箱地址是否存在',
'after:date' => '验证字段必须是给定日期后的值,比如required|date|after:tomorrow,通过PHP函数strtotime来验证',
'after_or_equal:date' => '大于等于',
'alpha' => '验证字段必须全是字母',
'alpha_dash' => '验证字段可能具有字母、数字、破折号、下划线',
'alpha_num' => '验证字段必须全是字母和数字',
'array' => '数组',
'before:date' => '小于',
'before_or_equal:date' => '小于等于',
'between:min,max' => '给定大小在min,max之间,字符串,数字,数组或者文件大小都用size函数评估',
'boolean' => '必须为能转化为布尔值的参数,比如:true,false,1,0,"1","0"',
'confirmed' => '字段必须与foo_confirmation字段值一致,比如,要验证的是password,输入中必须存在匹配的password_confirmation字段',
'date' => '通过strtotime校验的有效日期',
'date_equals:date' => '等于',
'date_format:format' => 'date和date_format不应该同时使用,按指定时间格式传值',
'different:field' => '验证的字段值必须与字段field的值相同',
'digits:value' => '必须是数字,并且有确切的值',
'digits_between:min,max' => '字段长度必须在min,max之间',
'dimensions' => '验证的文件是图片并且图片比例必须符合规则,比如dimensions:min_width=100,min_height=200,可用
的规则有min_width,max_width,min_height,max_height,width,height,ratio',
'distinct' => '无重复值',
'email' => '符合e-mail地址格式',
'exists:table,column' => '必须存在于指定的数据库表中',
'file' => '成功上传的文件',
'filled' => '验证的字段存在时不能为空',
'image' => '验证的文件必须是图像,jpeg,png,bmp,gif,svg',
'in:foo,bar,...' => '验证的字段必须包含在给定的值列表中',
'in_array:anotherfield' => '验证的字段必须存在于另一个字段的值中',
'integer' => '整数',
'ip' => 'ip地址',
'ipv4' => 'ipv4地址',
'ipv6' => 'ipv6地址',
'json' => 'json字符串',
'max:value' => '大于',
'mimetypes:text/plain,...' => '验证的文件必须与给定的MIME类型匹配',
'mimes:foo,bar,...' => '验证的文件必须具有列出的其中一个扩展名对应的MIME类型',
'min:value' => '小于',
'nullable' => '可为null,可以包含空值的字符串和整数',
'not_in:foo,bar...' => '不包含',
'numeric' => '必须为数字',
'present' => '验证的字段必须存在于输入数据中,但可以为空',
'regex:pattern' => '验证的字段必须与给定正则表达式匹配',
'required' => '验证的字段必须存在于输入数据中,但不可以为空',
//以下情况视为空:1.该值为null,2.空字符串,3.空数组或空的可数对象,4.没有路径的上传文件
'required_if:anotherfield,value,...' => '如果指定的anotherfield等于value时,被验证的字段必须存在且不为空',
'required_unless:anotherfield,value,...' => '如果指定的anotherfield等于value时,被验证的字段不必存在',
'required_with:foo,bar,...' => '只要指定的其它字段中有任意一个字段存在,被验证的字段就必须存在且不为空',
'required_with_all:foo,bar,...' => '当指定的其它字段必须全部存在时,被验证的字段才必须存在且不为空',
'required_without_all:foo,bar,...' => '当指定的其它字段必须全部不存在时,被验证的字段必须存在且不为空',
'required_without:foo,bar,...' => '当指定的其它字段有一个字段不存在,被验证的字段就必须存在且不为空',
'same:field' => '给定字段必须与验证字段匹配',
'size:value' => '验证字段必须具有与给定值匹配的大小,对字符串,value对应字符数;对数字,对应给定的
整数值;对数组,对应count值;对文件,是文件大小(kb)',
'timezone' => '验证字段是有效的时区标识符,根据PHP函数timezone_identifiers_list判断',
'unique:table,column,except,idColumn' => '验证字段必须是数据库中唯一的',
'url' => '有效的url',
];

简单例子

return [
'title.required' => 'A title is required',
'body.required' => 'A message is required',
'avatar' => [
'required',
Rule::dimensions()->maxWidth(500)->maxHeight(250)->ratio(3/2), //限制图片大小和比例
],
'foo.*.id' =>'distinct', //不允许重复
'state' =>'exists:states', //指定表
'state1' => 'exists:states,abbreviation', //指定表和字段
'email' => 'exists:connection.staff,email', //指定查询的数据库
'email1' => [
'required',
Rule::exists('staff')->where(function ($query){
$query->where('account_id',1);
}),
],
'zones' => [
'required',
Rule::in(['first-zone','second-zone']),
],
'video' => 'mimetypes:video/avi,video/mpeg,video/quicktime',
'photo' => 'mimes:jpeg,bmp,png', //验证文件扩展名,规则上也会验证文件的MIME类型,通过读取文件的内容以猜测它的MIME类型
'toppings' => [
'required',
Rule::notIn(['sprinkles','cherries']),
],
//当使用regex时,必须使用数组,而不是|分隔符,特别是正则中有|时
'email2' => 'unique:users,email_address',
'email3' => 'unique:connection.users,email_address', //指定数据库
'email4' => Rule::unique('users')->where(function ($query){
$query->where('account_id',1);
}),
'custom' => [
'person.*.email' => [
'unique' => 'each person must have a unique e-mail address',
]
],
];

特殊例子

//验证时忽视id
Validator::make($data,[
'email' => [
'required',
Rule::unique('users')->ignore($user->id,'user_id'),
]
]); //在某些情况下,只有在该字段存在于输入数组中时,才可以对字段执行验证检查
$v = Validator::make($data,[
'email' => 'sometimes|required|email',//email只有在data数组中时才会被验证
]); $z = Validator::make($data,[
'email' => 'required|email',
'games' => 'required|numeric',
]);
$z->sometimes('reason','required|max:500',function ($input){
return $input->games >= 100; //当值超过100时,reson才必填
});
$z->sometimes(['reson','cost'],'required',function ($input){
return $input->games >= 100;
});
$validator = Validator::make($request->all(),[
'photos.profile' => 'required|image',//验证数组中的某个key的值
]); $validator = Validator::make($request->all(),[
'person.*.email' => 'email|unique:users',
'person.*.first_name' => 'required_with:person.*.last_name',
]);//验证指定数组输入字段中的每一个email都是唯一的 $request->validate([
'name' => ['required', new Uppercase()],
]);
$validator = Validator::make($this->request,[
'title' => 'required|unique:posts|max:255',
'body' => 'required',
])->validate(); $validator->after(function ($validator){
if ($this->somethingElseIsInvalid()) {
$validator->errors()->add('field', 'Something is wrong with this field!');
}
}); if ($validator->fails()){ } $errors = $validator->errors();
echo $errors->first('email'); //以数组形式获取指定字段的所有错误消息
foreach ($errors->get('email') as $message){ } //验证表单的数组字段,获取数组元素的所欲错误消息
foreach ($errors->get('attachments.*') as $message){ } //查看所有字段的错误消息
foreach ($errors->all() as $message){ } // 检测一个字段是否有错误消息
if ($errors->has('email')){ }

laravel 数据验证规则的更多相关文章

  1. laravel 数据验证

    laravel 数据验证 在保存数据之前进行数据验证 类需要继承 Controller 然后用  $this->validate( $request , ['title' => 'requ ...

  2. laravel 可用验证规则

    accepted 验证的字段必须为 yes. on. 1.或 true.这在确认服务条款是否同意时相当有用. active_url 相当于使用了 PHP 函数 dns_get_record,验证的字段 ...

  3. yii2之数据验证

    一.场景 什么情况下需要使用场景呢?当一个模型需要在不同情境中使用时,若不同情境下需要的数据表字段和数据验证规则有所 不同,则需要定义多个场景来区分不同使用情境.例如,用户注册的时候需要填写email ...

  4. 05:ModelForm 数据验证 & 生成html & 数据库操作

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  5. Laravel的unique和exists验证规则的优化

    本文是Laravel实战:任务管理系统(一)的扩展阅读 原文链接:http://pilishen.com/posts/Improvements-to-the-Laravel-unique-and-ex ...

  6. MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息

    Asp.net MVC中的提供非常简单易用的数据验证解决方案. 通过System.ComponentModel.DataAnnotations提供的很多的验证规则(Required, StringLe ...

  7. JEECG 不同(角色的)人对同样的字段数据,使用不同的字段验证规则

    JEECG智能开发平台v3 开发指南http://www.jeecg.org/book/jeecg_v3.html jeecg: JEECG是一款基于代码生成器的J2EE快速开发平台,开源界“小普元” ...

  8. Laravel框架 -- Validator 可用的验证规则

    accepted 字段值为 yes, on, 或是 1 时,验证才会通过.这在确认"服务条款"是否同意时很有用. active_url 字段值通过 PHP 函数 checkdnsr ...

  9. laravel验证规则

    就拿laravel的登入验证来举例: 1.进入login控制器, use AuthenticatesUsers;从这里点进去找到验证规则 //验证protected function validate ...

随机推荐

  1. 有了Autolayout的UILabel

    在没有Autolayout之前,UILabel的文字内容总是居中显示,导致顶部和底部会有一大片空缺区域 有Autolayout之后,UILabel的bounds默认会自动包住所有的文字内容,顶部和底部 ...

  2. 什么是UIImageView

    UIKit框架提供了非常多的UI控件,但并不是每一个都很常用,有些控件可能1年内都用不上,有些控件天天用,比如UIButton.UILabel.UIImageView.UITableView等等 UI ...

  3. 红色小圆点+数字的badge自定义小方法 by Nicky.Tsui

    效果如图. 实现方法比较简单,在view上增加一个label label设置: 1 badgeLabel = [[UILabel alloc]initWithFrame:CGRectMake(CGRe ...

  4. python基础语法_2基本数据类型

    http://www.runoob.com/python3   大纲 Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionarys(字典 ...

  5. hexo 接入Google站长工具(google search console)提交sitemap

    1.点击google search console 2.选择 点击红圈的按钮 新建资源 3.资源类型 选择网址前缀, 输入网站的url 4.输入完成后的点击验证 下载html 放在hexo 项目下的 ...

  6. async异步流程控制

    http://cnodejs.org/topic/54acfbb5ce87bace2444cbfb 先安装:G:\www\nodejs\one\models>npm install async ...

  7. PL/SQL批量执行SQL脚本文件

    1.选择File > New > Command Windows(命令窗口) 2.输入 @ 符号,之后敲击回车键.从本地选择执行的 SQL脚本 等待批量命令全部执行成功,关闭页面即可 新增 ...

  8. [LeetCode]14.最长公共前缀(Java)

    原题地址: longest-common-prefix 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入:st ...

  9. SQLMAP配置洋葱路由

    [笔者目前使用的系统是kali渗透系统] =================================================================== 首先下载tor apt ...

  10. 四探循环依赖 → 当循环依赖遇上 BeanPostProcessor,爱情可能就产生了!

    开心一刻 那天知道她结婚了,我整整一个晚上没睡觉,开了三百公里的车来到她家楼下,缓缓的抽了一支烟...... 天渐渐凉了,响起了鞭炮声,迎亲车队到了,那天披着婚纱的她很美,真的很美! 我跟着迎亲车队开 ...