首頁  >  文章  >  php框架  >  Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

不言
不言轉載
2019-01-09 10:00:253091瀏覽

這篇文章帶給大家的內容是關於Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

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 [
            &#39;phone&#39;=>'required|regex:"^1\d{10}"',
            'email' => 'required|email',
            'password'=>'required|confirmed'
        ];
    }

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

    }



}

當我們在控制器中呼叫RegisterForm的時候,就回返回Json格式的錯誤訊息。
不分是否是AJAX

Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)

以上是Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除