主頁 > 知識庫 > laravel框架 api自定義全局異常處理方法

laravel框架 api自定義全局異常處理方法

熱門標(biāo)簽:團(tuán)購網(wǎng)站 Linux服務(wù)器 Mysql連接數(shù)設(shè)置 銀行業(yè)務(wù) 科大訊飛語音識別系統(tǒng) 阿里云 服務(wù)器配置 電子圍欄

api返回實(shí)現(xiàn)

$result = User::find($id);
if(empty($result)){
  throw new ApiException('獲取失敗');
}
else{
  return json_decode($result);
}

api返回信息

{
  "msg": "",
  "data": "獲取失敗",
  "status": 0
}

1,添加異常類

namespace App\Exceptions;


class ApiException extends \Exception
{

  function _construct($msg='')
  {
    parent::_construct($msg);
  }

}

2,修改laravel異常類u。。。

namespace App\Exceptions;


public function render($request, Exception $e)
{
  if ($e instanceof ApiException){
    $result = [
      "msg" => "",
      "data"=>$e->getMessage(),
      "status"=>0
    ];
    return response()->json($result);
  }
  return parent::render($request, $e);

考慮開發(fā)配置時

public function render($request, Exception $e)
{
 
  if(config('app.debug')){
    return parent::render($request,$e);
  }
  return $this->handle($request,$e);
}

public function handle($request,Exception $e){
  if ($e instanceof ApiException){
    $result = [
      "msg" => "",
      "data"=>$e->getMessage(),
      "status"=>0
    ];
    return response()->json($result);
  }

  return parent::render($request, $e);
}

以上這篇laravel框架 api自定義全局異常處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Laravel如何實(shí)現(xiàn)適合Api的異常處理響應(yīng)格式
  • Laravel5.5+ 使用API Resources快速輸出自定義JSON方法詳解
  • laravel接管Dingo-api和默認(rèn)的錯誤處理方式
  • 在Laravel中使用GuzzleHttp調(diào)用第三方服務(wù)的API接口代碼
  • Laravel實(shí)現(xiàn)ApiToken認(rèn)證請求
  • laravel dingo API返回自定義錯誤信息的實(shí)例
  • laravel 配置路由 api和web定義的路由的區(qū)別詳解
  • Laravel5.4簡單實(shí)現(xiàn)app接口Api Token認(rèn)證方法
  • 詳解Laravel制作API接口

標(biāo)簽:江蘇 衢州 棗莊 大理 衡水 蚌埠 廣元 萍鄉(xiāng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《laravel框架 api自定義全局異常處理方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266