如何在laravel 表单验证中将多个字段进行组合-亚博电竞手机版

如何在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 表单验证中将多个字段进行组合问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注恰卡编程网行业资讯频道了解更多相关知识。

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图