laravel
框架中默认的validate
验证,在处理错误的时候,默认是返回上一页,当为ajax
的时候才会返回Json
。如果我们要一直返回Json
的话,那么需要重写错误处理
如下:在Requests
目录只用 新建BaseRequest
类
代码如下
<?php /** * @文件名称: BaseRequest.php. * @author: daisc * @email: jiumengfadian@live.com * @Date: 2019/1/8 */ namespace AppHttpRequestsFront; use IlluminateFoundationHttpFormRequest; use IlluminateHttpExceptionsHttpResponseException; class BaseRequest extends FormRequest { public function failedValidation($validator) { $error= $validator->errors()->all(); // $error = $validator; throw new HttpResponseException(response()->json(['code'=>1,'message'=>$error[0]])); } }
重写了failedValidation
方法,将抛出错误处理为了json
格式的。
然后在自定义的处理验证类中,继承该类就行了,
如:RegisterForm
中
<?php namespace AppHttpRequestsFront; class RegisterForm extends BaseRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'phone'=>'required|regex:"^1d{10}"', 'email' => 'required|email', 'password'=>'required|confirmed' ]; } public function messages() { return [ 'phone.required'=>'手机号不能为空', 'phone.regex'=>'请输入正确的手机号', ]; } }
当我们在控制器中调用RegisterForm
的时候,就回返回Json
格式的错误信息。
不分是否是AJAX
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录