当前位置:首页 > 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. } 
  5. else{ 
  6.   return json_decode($result); 
  7. } 

api返回信息

  1. { 
  2.   "msg": "", 
  3.   "data": "获取失败", 
  4.   "status": 0 
  5. } 

1,添加异常类

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

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

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

考虑开发配置时

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

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

分享到: