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,不要弄混

posted @ 2019-10-10 17:34  夏嘉  阅读(1445)  评论(0编辑  收藏  举报