当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel框架 api自定义全局异常处理方法

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-01 21:59:11 浏览: 评论:0 

今天小编就为大家分享一篇laravel框架 api自定义全局异常处理方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

api返回实现

  1. $result = User::find($id); 
  2. if(emptyempty($result)){ 
  3.   throw new ApiException('获取失败'); 
  4. else
  5.   return json_decode($result); 

api返回信息

  1.   "msg"""
  2.   "data""获取失败"
  3.   "status": 0 

1,添加异常类

  1. namespace App\Exceptions; 
  2.  
  3. class ApiException extends \Exception 
  4.  
  5.   function _construct($msg=''
  6.   { 
  7.     parent::_construct($msg); 
  8.   } 
  9.  

2,修改laravel异常类u。。。

  1. namespace App\Exceptions; 
  2.  
  3. public function render($request, Exception $e
  4.   if ($e instanceof ApiException){ 
  5.     $result = [ 
  6.       "msg" => ""
  7.       "data"=>$e->getMessage(), 
  8.       "status"=>0 
  9.     ]; 
  10.     return response()->json($result); 
  11.   } 
  12.   return parent::render($request$e); 

考虑开发配置时

  1. public function render($request, Exception $e
  2.    
  3.   if(config('app.debug')){ 
  4.     return parent::render($request,$e); 
  5.   } 
  6.   return $this->handle($request,$e); 
  7.  
  8. public function handle($request,Exception $e){ 
  9.   if ($e instanceof ApiException){ 
  10.     $result = [ 
  11.       "msg" => ""
  12.       "data"=>$e->getMessage(), 
  13.       "status"=>0 
  14.     ]; 
  15.     return response()->json($result); 
  16.   } 
  17.  
  18.   return parent::render($request$e); 
  19. }

Tags: laravel全局异常 api全局异常

分享到: