laravel中使用FormRequest进行表单验证,验证异常返回Json
通常在项目中,我们会对大量的前端提交过来的数据进行验证,如果不通过,返回错误信息。
前端为了更好的体验,都使用ajax进行提交,虽然validate方法能够根据前端不同的请求方式,返回不同的结果。
但是返回的json格式并不是我们想要的,这个时候就要自定义返回错误结果。
php artisan make:request TestRequest
该类继承 FormRequest类
父类FormRequest中的failedValidation()方法用来处理验证失败,我们需要重写父类方法,实现自己得返回。
public function failedValidation(Validation $validator) { throw (new HttpResponseException(response->json([ 'status_code' => '500', 'message' => '请求错误', 'data' => $validator->errors()->first(), ],200))); }
注意,failedValidation方法中的$validator 参数是 Illuminate\Contracts\Validation\Validator对象,不是Illuminate\Validation\Validator,不要弄混