溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Laravel框架中使用FormRequest處理錯(cuò)誤

發(fā)布時(shí)間:2021-03-05 15:28:40 來源:億速云 閱讀:252 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹如何在Laravel框架中使用FormRequest處理錯(cuò)誤,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Laravel 是什么

Laravel 是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開發(fā)框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構(gòu)建一個(gè)完美的網(wǎng)絡(luò)APP,而且每行代碼都可以簡(jiǎn)潔、富于表達(dá)力。

laravel 框架中默認(rèn)的validate驗(yàn)證,在處理錯(cuò)誤的時(shí)候,默認(rèn)是返回上一頁,當(dāng)為ajax的時(shí)候才會(huì)返回Json。如果我們要一直返回Json的話,那么需要重寫錯(cuò)誤處理

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

如何在Laravel框架中使用FormRequest處理錯(cuò)誤

代碼如下

<?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方法,將拋出錯(cuò)誤處理為了json格式的。

然后在自定義的處理驗(yàn)證類中,繼承該類就行了,

如: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'=>'手機(jī)號(hào)不能為空',
      'phone.regex'=>'請(qǐng)輸入正確的手機(jī)號(hào)',
    ];

  }

}

當(dāng)我們?cè)诳刂破髦姓{(diào)用RegisterForm的時(shí)候,就回返回Json格式的錯(cuò)誤信息。

不分是否是AJAX

如何在Laravel框架中使用FormRequest處理錯(cuò)誤

關(guān)于如何在Laravel框架中使用FormRequest處理錯(cuò)誤就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI