PHP使Laravel為JSON REST API返回自定義錯誤的問題
我正在開發(fā)某種RESTful API.發(fā)生一些錯誤時,我會拋出一個App :: abort($code,$message)錯誤.
問題是:我希望他用鍵“代碼”和“消息”拋出一個json形成的數(shù)組,每個數(shù)組都包含上述數(shù)據(jù).
Array ( [code] => 401 [message] => "Invalid User" )
有沒有人知道是否可能,如果是,我該怎么做?
去你的app / start / global.php.
這將將401和404的所有錯誤轉(zhuǎn)換為自定義json錯誤,而不是Whoops stacktrace.加這個:
App::error(function(Exception $exception, $code) { Log::error($exception); $message = $exception->getMessage(); // switch statements provided in case you need to add // additional logic for specific error code. switch ($code) { case 401: return Response::json(array( 'code' => 401, 'message' => $message ), 401); case 404: $message = (!$message ? $message = 'the requested resource was not found' : $message); return Response::json(array( 'code' => 404, 'message' => $message ), 404); } });
這是處理此錯誤的眾多選項之一.
制作API最好創(chuàng)建自己的幫助器,如Responser :: error(400,'damn'),擴(kuò)展了Response類.
有點像:
public static function error($code = 400, $message = null) { // check if $message is object and transforms it into an array if (is_object($message)) { $message = $message->toArray(); } switch ($code) { default: $code_message = 'error_occured'; break; } $data = array( 'code' => $code, 'message' => $code_message, 'data' => $message ); // return an error return Response::json($data, $code); }
總結(jié)
以上所述是小編給大家介紹的PHP使Laravel為JSON REST API返回自定義錯誤的解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
YII CLinkPager分頁類擴(kuò)展增加顯示共多少頁
yii的分頁類CLinkPager默認(rèn)是不支持顯示共x頁的,那么現(xiàn)在接的項目有這樣的需求,怎么辦呢?下面通過本文給大家介紹YII CLinkPager分頁類擴(kuò)展增加顯示共多少頁的實例代碼,需要的朋友參考下吧2016-01-01對laravel的csrf 防御機(jī)制詳解,及form中csrf_token()的存在介紹
對laravel的csrf 防御機(jī)制詳解,及對laravel的csrf 防御機(jī)制詳解,及form中csrf_token()的存在介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10關(guān)于 Laravel Redis 多個進(jìn)程同時取隊列問題詳解
這篇文章主要給大家介紹了關(guān)于 Laravel Redis 多個進(jìn)程同時取隊列問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價值,需要的朋友下面來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12