接管Dingo-api的错误

如上图所示,AppServiceProvider.php中的register()方法中添加如下代码
API::error(function (IlluminateValidationValidationException $exception){ $data =$exception->validator->getMessageBag(); $msg = collect($data)->first(); if(is_array($msg)){ $msg = $msg[0]; } return response()->json(['message'=>$msg,'status_code'=>400], 200); }); API::error(function (DingoApiExceptionValidationHttpException $exception){ $errors = $exception->getErrors(); return response()->json(['message'=>$errors->first(),'status_code'=>400], 200); });接管laravel的错误

在Exceptions的Handler.php的render中写入以下代码
public function render($request, Exception $exception) { if($exception instanceof IlluminateValidationValidationException){ $data = $exception->validator->getMessageBag(); $msg = collect($data)->first(); if(is_array($msg)){ $msg = $msg[0]; } return response()->json(['message'=>$msg],200); } if (in_array('api',$exception->guards())){ if($exception instanceof AuthenticationException){ return response()->json(['message'=>'token错误'],200); } if($exception instanceof ModelNotFoundException){ return response()->json(['message'=>'该模型未找到'],200); } } return parent::render($request, $exception); }







