laravel中使用FormRequest进行表单验证,验证异常返回Json

北战南征 提交于 2019-12-01 02:51:17

通常在项目中,我们会对大量的前端提交过来的数据进行验证,如果不通过,返回错误信息。

前端为了更好的体验,都使用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,不要弄混

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!