Laravel Json回應及錯誤處理
Laravel 再遇到錯誤時,多數會拋出錯誤在介面顯示,並且中斷
這時可以透過 try catch 來捕捉拋出錯誤,自定義要做什麼處理
下方式簡易的錯誤處理範例:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Exception;
class ErrortestController extends Controller
{
public function index(){
try {
throw new Exception('When Error Happened');
} catch (Exception $e) {
echo $e->getMessage();
}
}
}
這裡列出 Exception 可用的方法
$e->getMessage(); //返回錯誤訊息
$e->getCode(); //返回錯誤代碼
$e->getFile(); //返回錯誤文件名稱
$e->getLine(); //返回發生錯誤的行數
$e->getTrace(); //backtrace()
$e->getTraceAsString(); //格式化成字串的 getTrace
建立 Support 處理返回 api 錯誤
建立 ApiSupport 來處理 api 錯誤
<?php
namespace App\Supports;
use Carbon\Carbon;
class ApiSupport
{
/**
* Api response 回傳格式
*
* @param array $DataSet
*
* @return object $oResult 回傳值
* @author Adam
* @date 2019/01/22
*/
public static function jsonResponseFormat($DataSet='')
{
$oCurrentTime = Carbon::now();
//預設json返回格式
$aDefaultDataset = [
//可以設定在 .env
"program"=> "my production",
"version"=> "1.2.3",
"release"=> "45",
//動態參數
"datetime"=> $oCurrentTime,
"timestamp"=> strtotime($oCurrentTime->toDateTimeString()),
"status"=> "",//success
"code"=> 200,
"message"=> "OK",
"error"=> false,
"error_message"=> "",
"data"=> [
"rotues"=> [
"method"=>"GET",
"path"=> "/users",
"description"=> "Get user data"
],
"message"=> "Hello world"
]
];
$oResult = array_merge($aDefaultDataset, $DataSet);
return $oResult;
}
}
json回應就可以直接引用
Continue Reading