Laravel框架FormRequest中重寫錯誤處理的方法

這篇文章主要介紹了Laravel框架FormRequest中重寫錯誤處理的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

laravel 框架中默認的validate驗證,在處理錯誤的時候,默認是返回上一頁,當爲ajax的時候纔會返回Json。如果我們要一直返回Json的話,那麼需要重寫錯誤處理

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

代碼如下

<?php
/**
 * @文件名稱: BaseRequest.php.
 * @author: daisc
 * @email: [email protected]
 * @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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持神馬文庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章