欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Laravel框架FormRequest中重写错误处理的方法

程序员文章站 2022-04-28 16:54:47
laravel 框架中默认的validate验证,在处理错误的时候,默认是返回上一页,当为ajax的时候才会返回json。如果我们要一直返回json的话,那么需要重写错误处...

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

如下:在requests目录只用 新建baserequest

Laravel框架FormRequest中重写错误处理的方法

代码如下

<?php
/**
 * @文件名称: baserequest.php.
 * @author: daisc
 * @email: jiumengfadian@live.com
 * @date: 2019/1/8
 */

namespace app\http\requests\front;

use illuminate\foundation\http\formrequest;
use illuminate\http\exceptions\httpresponseexception;

class baserequest extends formrequest
{

  public function failedvalidation($validator)
  {

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

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

  }

}

重写了failedvalidation方法,将抛出错误处理为了json格式的。

然后在自定义的处理验证类中,继承该类就行了,

如:registerform

<?php

namespace app\http\requests\front;

class registerform extends baserequest
{
  /**
   * determine if the user is authorized to make this request.
   *
   * @return bool
   */
  public function authorize()
  {
    return true;
  }

  /**
   * get the validation rules that apply to the request.
   *
   * @return array
   */
  public function rules()
  {
    return [
      'phone'=>'required|regex:"^1\d{10}"',
      'email' => 'required|email',
      'password'=>'required|confirmed'
    ];
  }

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

  }

}

当我们在控制器中调用registerform的时候,就回返回json格式的错误信息。

不分是否是ajax

Laravel框架FormRequest中重写错误处理的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。