Laravel框架FormRequest中重寫錯誤處理的方法
laravel
框架中默認(rèn)的validate
驗證,在處理錯誤的時候,默認(rèn)是返回上一頁,當(dāng)為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
中
<?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'=>'請輸入正確的手機號', ]; } }
當(dāng)我們在控制器中調(diào)用RegisterForm
的時候,就回返回Json
格式的錯誤信息。
不分是否是AJAX
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP指定截取字符串中的中英文或數(shù)字字符的實例分享
這篇文章主要介紹了PHP指定截取字符串中的中英文或數(shù)字字符的實例,還附帶介紹了過濾字符串中空格的方法,需要的朋友可以參考下2016-03-03php版微信開發(fā)之接收消息,自動判斷及回復(fù)相應(yīng)消息的方法
這篇文章主要介紹了php版微信開發(fā)之接收消息,自動判斷及回復(fù)相應(yīng)消息的方法,涉及基于微信消息處理接口的調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2016-09-09關(guān)于PHP中Session文件過多的問題及session文件保存位置
PHP的默認(rèn)機制:每一次php請求,會有1/100的概率(默認(rèn)值)觸發(fā)“session回收”。接下來通過本文給大家介紹關(guān)于PHP中Session文件過多的問題及session文件保存位置,需要的朋友參考下2016-03-03CI框架實現(xiàn)創(chuàng)建自定義類庫的方法
這篇文章主要介紹了CI框架實現(xiàn)創(chuàng)建自定義類庫的方法,結(jié)合實例形式分析了CI框架創(chuàng)建自定義類庫的相關(guān)原理、步驟、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2018-12-12