如何在laravel 表单验证中将多个字段进行组合-亚博电竞手机版
php技术
2021年02月06日 16:57
0
如何在laravel 表单验证中将多个字段进行组合?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
laravel 表单验证器的几种使用方法
1、使用控制器的 validate 方法进行参数验证
/** *保存一篇新的博客文章。 * *@paramrequest$request *@returnresponse */ publicfunctionstore(request$request) { $this->validate($request,[ 'title'=>'required|unique:posts|max:255', 'body'=>'required', ]); //文章内容是符合规则的,存入数据库 }
2、手动创建验证器实例进行验证
使用默认的验证信息
/** *保存一篇新的博客文章。 * *@paramrequest$request *@returnresponse */ publicfunctionstore(request$request) { $rules=[ 'title'=>'required|unique:posts|max:255', 'body'=>'required', ]; $validator=validator::make($request->all(),$rules); if($validator->fails()){ returnredirect('post/create')->witherrors($validator)->withinput(); } //文章内容是符合规则的,存入数据库 }
使用自定义的验证信息
/** *保存一篇新的博客文章。 * *@paramrequest$request *@returnresponse */ publicfunctionstore(request$request) { $rules=[ 'title'=>'required|unique:posts|max:255', 'body'=>'required', ]; $messages=[ 'title.required'=>'请填写文章标题', 'title.unique'=>'文章标题不能重复', 'title.max'=>'文章标题不能超过255个字符', 'body.required'=>'请填写文章内容', ]; $validator=validator::make($request->all(),$rules,$messages); if($validator->fails()){ returnredirect('post/create')->witherrors($validator)->withinput(); } //文章内容是符合规则的,存入数据库 }
3、创建表单请求进行验证
创建表单请求文件:php artisan make:request examplerequest表单请求文件内容:
'required|max:20', 'name'=>['required',newuppercase()], ]; } /** *获取已定义的验证规则的错误消息。 * *@returnarray */ publicfunctionmessages() { return[ 'title.required'=>'atitleisrequired', 'title.max'=>'thetitlemaynotbegreaterthan20characters.', ]; } /** *兼容form表单请求与ajax请求或者jsonapi请求 *验证失败,返回错误信息 * *@paramvalidator$validator *@throws */ protectedfunctionfailedvalidation(validator$validator) { if($this->wantsjson()||$this->ajax()){ thrownewhttpresponseexception( newjsonresponse([ 'code'=>500, 'msg'=>$validator->errors()->first(), 'data'=>new\stdclass() ]) ); }else{ parent::failedvalidation($validator); } } }
在控制器中使用 examplerequest
all(); dd($params); } }
在laravel 表单验证中,常会遇到需要几个字段组合起来做唯一限制。
亚博vip888的解决方案如下:
where[]=['parentid','=',where[]=[′parentid′,′=′,this->request->get('parentid')]; return[ 'menutitle'=>['required','max:32','min:2',rule::unique('admin_menu','menutitle')->where(function($query)use($where){ $query->where($where)->wherenull('deleted_at'); })->ignore($id)], 'menutitleen'=>['required','max:32','min:2',rule::unique('admin_menu','menutitleen')->where(function($query)use($where){ $query->where($where)->wherenull('deleted_at'); })->ignore($id)], 'menuroute'=>['required',rule::unique('admin_menu','menuroute')->ignore($id)], 'menuicon'=>['required','min:2','max:32'], 'routename'=>['sometimes','min:2','max:32'], 'parentid'=>['required','numeric'], 'order'=>['sometimes','numeric'] ];
关于如何在laravel 表单验证中将多个字段进行组合问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。
展开全文