Laravel框架FormRequest中重写错误处理

laravel 框架中默认的 validate验证,在处理错误的时候,默认是返回上一页,当为 ajax的时候才会返回 Json。如果我们要一直返回 Json的话,那么需要重写错误处理

如下:在Requests目录只用 新建BaseRequest

代码如下

errors()->all();
       // $error = $validator;

        throw  new HttpResponseException(response()->json(['code'=>1,'message'=>$error[0]]));

    }


}

重写了failedValidation方法,将抛出错误处理为了json格式的。
然后在自定义的处理验证类中,继承该类就行了,
如:RegisterForm

'required|regex:"^1\d{10}"',
            'email' => 'required|email',
            'password'=>'required|confirmed'
        ];
    }

    public function messages()
    {
        return [
            'phone.required'=>'手机号不能为空',
            'phone.regex'=>'请输入正确的手机号',
        ];

    }



}

当我们在控制器中调用RegisterForm的时候,就回返回Json格式的错误信息。
不分是否是AJAX

原文地址

你可能感兴趣的:(laravel,php)