這篇文章帶給大家的內容是關於Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
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
中
<?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
以上是Laravel中FormRequest中重寫錯誤處理的介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!