首页 > 开发 > PHP > 正文

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

2024-05-04 22:40:56
字体:
来源:转载
供稿:网友

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

如下:在Requests目录只用 新建BaseRequest

代码如下

<?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

<?phpnamespace 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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表