php Laravel5.5 表单验证常用的验证规则,以及示…
2018-08-21 05:40:09来源:博客园 阅读 ()
namespace App\Http\Controllers; use App\Models\Users; use Illuminate\Support\Facades\Validator; use Symfony\Component\HttpFoundation\Request; class UsersController extends Controller{ // 添加用户post数据验证 public function create(Request $request){ if($request->isMethod('POST')){ $data=$request->input('users'); // 1.控制器的验证演示 Controller中 use ValidatesRequests 就可以直接调用; // blade中HTML中form表单中name的传值演示 <input name="users[u_mobile]" placeholder="请输入" class="layui-input" type="text"> // <input name="u_gender" value="1" type="radio"><input name="u_gender" value="2" type="radio"> $this->validate($request,[ // 以下正则验证都是自己随意编写的并没有严格去验证,如需要严格的请自行编写或百度,#此处只为重点讲Laravel可用验证用法 //required必须输入 unique 唯一(在users表中u_mobile[手机号]为唯一,不允许重复,regex表达式验证) 此处要用多个条件验证和regex正则建议采用[]形式中间用逗号分隔 'users.u_mobile'=>['required','unique:users','regex:/^1[3|4|5|7|8][0-9]{9}$/'], // 如果是一维数组直接'u_mobile'就可以了; // 编辑过程中验证唯一示例如:'users.u_mobile'=>['required',Rule::unique('users')->ignore($user->id),'regex:/^1[3|4|5|7|8][0-9]{9}$/'], // $user为查出的用户对象,ignore是为了强迫Unique规则忽略指定ID($user->id)再进行判断唯一,如果不是在控制器中使用validate验证你可以采用request('id')来获取指定id,request为一个辅助函数很实用 'users.u_qq'=>['required','regex:/^[1-9][0-9]{4,}$/'], // QQ号 'users.u_email'=>['required','unique:users','regex:/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/'], // 大概的邮箱验证 'u_gender'=>'required|in:1,2', // in 的用法用户性别只能输入1和2(男/女) 此处采用中划线的形式验证 如果文字也可以设置为 'required|in:男,女' 'users.u_nickname'=>['required','regex:/^[_\w\d\x{4e00}-\x{9fa5}]{3,20}$/iu'], // 随意写的用户名验证 /*****以下开始重点演示可用的验证用法,有些命名属性和users几乎无什么关联了,重点看验证规则写法,其它的并不重要****/ 'salary' => 'required|integer|min:1000', // 工资 integer必须为整数,但是数字必须不能超过2147483647否则它将判断为“不是整数”, min最小值为1000 // nullable 允许输入为空, required_if如果用户性别选择了为1那么input中属性name="name"输入框就必须要填写(多个条件写法:required_if:u_gender,1,salary,1000) 'users.name' => 'nullable|required_if:u_gender,1|string|between:1,10', // between 之间(包括1和10) 姓名必须在字数1位和10位之间 'tel'=>['nullable','regex:/^((0\d{2,3}-?)?\d{7,8})|(1[3-9]\d{9})$/'], // 联系电话(座机号和手机号都可以),输入可以为空,但有输入值时就必须按照正则验证 'users.id_no' =>['required','regex:/(^\d{17}[0-9xX]{1}$)|(^\d{14}[0-9xX]{1}$)/'], // 身份证号码验证(包括15位的验证) 'users.age' => ['nullable', 'integer', 'regex:/^[1-9][0-9]?$/'], //年龄 也可以尝试中划线形式:'nullable|integer|regex:/^[1-9][0-9]?$/' // 余额 numeric必须为数字,max最大值为922337203685477 但是max设置为9223372036854771 但用户输入9223372036854772、9223372036854773 也可以验证通过 // max设置为9223372036854775807 但输入 9223372036854775808、9223372036854775809 还是会通过 所以max还有些缺陷请谨慎使用! // 同样的问题在 between用于数字类型的精确的范围之间验证也会出现问题,如:between:1,9223372036854771 输入9223372036854773 也会通过,也需要注意!!! 'balance' => 'nullable|numeric|min:1|max:922337203685477', //max如果是数字类型,最大为922337203685477内能精确验证,超过了可能出现问题. //html模版如: 互联网<input type="checkbox" name="industry_nos[]" value="1"> 建筑<input type="checkbox" name="industry_nos[]" value="2"> 'industry_nos' =>'required|array', // 行业 array 验证的字段必须是一个php数组 'industry_nos.*' =>'integer|distinct|between:1,6', // 整数必须在1和6之间 distinct 指定的字段不能有任何重复值 'telephone' => ['required_without:id_no', 'regex:/^1[3-9]\d{9}$/'], // 手机号 required_without 只要id_no字段不存在,telephone那么就必须存在且不能为空 'id_no' => ['required_without:telephone', 'regex:/(^\d{17}[0-9xX]{1}$)|(^\d{14}[0-9xX]{1}$)/'], // 身份证号码 只要telephone不存在,那么id_no就必须存在不能为空 //html模版如: 密码二次确认 <input type="password" name="password" /> <input type="password" name="password_confirmation" /> 'password'=>'required|min:6|confirmed', // confirmed 验证的字段必须和password_confirmation 保持一样否则就会验证不成功 'password_confirmation' => 'required|min:6', // password_confirmation会验证和confirmed一致 'pics' =>'required|json|not_in:[]', // json必须为有效的json字符串,not_in不能为包含给定的值[] 'birthday'=>'nullable|date', // 验证的字段值必须是通过PHP函数strtotime校验的有效日期 'start_date' => 'nullable|date_format:Y-m-d', //开始时间 date_format 验证的字段必须与给定的时间格式相匹配 'amount' => ['required','numeric','regex:/^\d{1,14}$/'], // 正则允许的最大为: 99999999999999,超过即为不合法 //msyql bigint带符号的最大值为9223372036854775807,但php中如果位数超过14将采用科学计数法如果采用max不太合适,所以先默认使用上面的正则验证方法 ],[ 'required'=>':attribute为必填项',//:attribute 字段占位符表示字段名称 'regex'=>':attribute格式不正确', 'unique'=>':attribute已经存在', 'integer'=>':attribute必须为整数', 'min'=>':attribute不能小于6位', 'email'=>':attribute格式不正确', 'in'=>':attribute必须选择', 'max'=>':attribute大于了10位', // 此处开始省略..就不再继续编写了,写法同上面都差不多,自行编写即可 ],[ 'users.u_mobile'=>'手机号码', //指定字段名称 'users.u_qq'=>'QQ号码', 'users.u_email'=>'联系邮箱', 'u_gender'=>'用户性别', 'users.u_nickname'=>'用户昵称', // 此处开始省略..就不再继续编写了,写法同上面都差不多,自行编写即可 ]); // 2. validator类验证演示--------------- /*$validator=Validator::make($request->input(),[ 'users.u_mobile'=>['required','unique:users','regex:/^1[3|4|5|7|8][0-9]{9}$/'],//如果是一维数组直接'u_mobile'就可以了; 'users.u_qq'=>['required','regex:/^[1-9][0-9]{4,}$/'], 'users.u_email'=>'required|unique:users|email', 'users.u_gender'=>'required|in:0,1,2', 'users.u_nickname'=>['required','regex:/^[_\w\d\x{4e00}-\x{9fa5}]{3,20}$/iu'], ],[ 'required'=>':attribute为必填项',//:attribute 字段占位符表示字段名称 'regex'=>':attribute格式不正确', 'unique'=>':attribute已经存在', 'integer'=>':attribute必须为整数', 'min'=>':attribute不能小于6位', 'email'=>':attribute格式不正确', 'in'=>':attribute必须选择', 'max'=>':attribute大于了10位', ],[ 'users.u_mobile'=>'手机号码', //指定字段名称 'users.u_qq'=>'QQ号码', 'users.u_email'=>'联系邮箱', 'users.u_gender'=>'用户性别', 'users.u_nickname'=>'用户昵称', ]); if($validator->fails()){ abort(422, $validator->errors()->first()); }*/ } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash