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中
<?phpnamespace 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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。
新聞熱點
疑難解答
圖片精選