Laravel框架FormRequest中重寫錯誤處理的方法
laravel 框架中默認的validate驗證,在處理錯誤的時候,默認是返回上一頁,當(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操作redis中的hash和zset類型數(shù)據(jù)的方法和代碼例子
這篇文章主要介紹了php操作redis中的hash和zset類型數(shù)據(jù)的方法和代碼例子,本文共介紹了26組函數(shù)或方法,需要的朋友可以參考下2014-07-07
Zend Framework實現(xiàn)多文件上傳功能實例
這篇文章主要介紹了Zend Framework實現(xiàn)多文件上傳功能的方法,較為詳細的分析說明了Zend Framework實現(xiàn)多文件上傳的具體步驟與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2016-03-03
ajax完美實現(xiàn)兩個網(wǎng)頁 分頁功能的實例代碼
ajax完美實現(xiàn)兩個網(wǎng)頁 分頁功能的實例代碼,需要的朋友可以參考一下2013-04-04
ThinkPHP采用<volist>實現(xiàn)三級循環(huán)代碼實例
這篇文章主要介紹了ThinkPHP采用<volist>實現(xiàn)三級循環(huán)代碼實例,通過實例加深讀者對<volist>標(biāo)簽用法的認識,需要的朋友可以參考下2014-07-07

