通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息。@H_301_1@
前端为了更好的体验,都使用AJAX进行表单提交,虽然 valIDate() 方法能够根据前端的不同请求方式,返回不同的结果。@H_301_1@
但是返回的Json格式并不是我们想要的,这个时候,我们就需要自定义返回错误结果。@H_301_1@
先创建一个表单请求类:@H_301_1@
PHP artisan make:request TestRequest
然后在 rules() 和 messages() 方法里填写自已的验证规则和消息@H_301_1@
<?PHPnamespace App\http\Requests;use Illuminate\Foundation\http\FormRequest;use Illuminate\Contracts\ValIDation\ValIDator;use Illuminate\http\Exceptions\httpResponseException;class TestRequest extends FormRequest{ /** * 控制访问权限 */ public function authorize() { //注意,默认是false,改成true return true; } /** * 验证规则 */ public function rules() { return [ 'name' => 'required','pwd' => 'required',]; } /** * 验证消息 */ public function messages() { return [ 'name.required' => '姓名必填','pwd.required' => '密码必填',]; }}
注意,父类 FormRequest中的 FailedValIDation() 方法用来处理验证失败,我们重写父类方法,来实现自已的返回。@H_301_1@
public function FailedValIDation(ValIDator $valIDator){ throw (new httpResponseException(response()->Json([ 'status_code' => 500,'message' => '请求错误','data' => $valIDator->errors()->first(),],200)));}
注意 FailedValIDation() 方法的 $valIDator 参数是 Illuminate\Contracts\ValIDation\ValIDator 对象,不是 Illuminate\ValIDation\ValIDator,不要搞错了。@H_301_1@ 总结
以上是内存溢出为你收集整理的laravel中使用FormRequest进行表单验证,验证异常返回JSON全部内容,希望文章能够帮你解决laravel中使用FormRequest进行表单验证,验证异常返回JSON所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)