在做API时,需要对一些异常进行全局处理,比如添加用户执行失败时,需要返回错误信息
- // 添加用户 www.bcty365.com
- $result = User::add($user);
- if(emptyempty($result)){
- throw new ApiException('添加失败');
- }
- API 回复
- {
- "msg" : "添加失败",
- "data" : "",
- "status" : 0 // 0为执行错误
- }
那么我们就需要添加一个全局异常处理,专门用来返回错误信息
步骤
1.添加异常处理类
2.修改laravel异常处理
1.添加异常处理类
- ./app/Exceptions/ApiException.php
- <?php
- namespace AppExceptions;
- class ApiException extends Exception
- {
- function __construct($msg='')
- {
- parent::__construct($msg);
- }
- }
2.修改laravel异常处理
- ./app/Exceptions/Handler.php
- // Handler的render函数
- public function render($request, Exception $e)
- {
- // 如果config配置debug为true ==>debug模式的话让laravel自行处理
- if(config('app.debug')){
- return parent::render($request, $e);
- }
- return $this->handle($request, $e);
- }
- // 新添加的handle函数
- public function handle($request, Exception $e){
- // 只处理自定义的APIException异常
- if($e instanceof ApiException) {
- $result = [
- "msg" => "",
- "data" => $e->getMessage(),
- "status" => 0
- ];
- return response()->json($result);
- }
- return parent::render($request, $e);
- }
这样就可以了