在開發專案的時候,資料的驗證是必不可少的一環。在laravel中我們可以把這塊的邏輯單獨獨立出來。
以提高我們的程式碼的可閱讀性。
使用的laravel 框架 是5.3
那我們使用了以下命令建立了驗證類後,我們怎麼進行統一的驗證錯誤訊息返回呢?
$ php artisan make:request RoleRequest
我們的專案在ajax或Http的時候 都有統一的返回格式。如:
return response()->json([
'code' => $code,
'status' => $status == 1 ? 'SUCCESS' : 'FAIL',
'msg' => $msg,
'data' => $data,
]);
我們希望在驗證資料有錯誤時,返回的資訊的格式也要按這個格式。以方便我們前端好處理。
找到框架的異常處理類
路徑:app\Exceptions\Handler.php
在這個類檔案中有兩個方法:report() 記錄異常資訊, render() 異常響應輸出
我們在render() 方法中寫下如下程式碼。
if ($exception instanceof ValidationException) {
if($request->ajax()){
$errorMsg = toiIndexArr(json_decode($exception->getResponse()->getContent(),true));
return returnData(10002,0,[$errorMsg],$errorMsg[0]);
}
}
思路:
1.判斷異常是否來自於 驗證異常
2.判斷是否是ajax請求
3.獲取驗證錯誤資訊並處理成索引陣列,原來是關聯陣列。
4.統一格式返回。
針對這些問題,讓我們共同參與,做一個laravel 的佈道者,同時也能提升你自身的能力。