Laravel 框架返回状态拦截代码分享!

可拦截系统的返回的状态自己在单独处理。

使用查询

  composer require betterde/response  // 安装后直接调用以下  # stored  return stored($data, $message = '创建成功');     #updated  return updated($data, $message = '更新成功');     #deleted  return deleted($message = '删除成功');     #accepted  return accepted($message = '请求已接受,等待处理');     #notFound  return notFound($message = '您访问的资源不存在');     #internalError  return internalError($message = '未知错误导致请求失败');     #failed  return failed($message, $code = Response::HTTP_BAD_REQUEST);     #success  return success($data);     #message  return message($message, $code = Response::HTTP_OK);     #respond  return respond($data = [], $message = '请求成功', array $header = []);  

拦截代码

  AppExceptionsHandler
  <?php     namespace AppExceptions;     use Exception;  use IlluminateSupportFacadesLog;  use IlluminateDatabaseQueryException;  use AppTraitsResponseInterfaceResponse;  use IlluminateAuthAuthenticationException;  use IlluminateValidationValidationException;  use IlluminateAuthAccessAuthorizationException;  use IlluminateDatabaseEloquentModelNotFoundException;  use SymfonyComponentHttpKernelExceptionHttpException;  use IlluminateFoundationExceptionsHandler as ExceptionHandler;  use SymfonyComponentHttpKernelExceptionNotFoundHttpException;  use SymfonyComponentHttpKernelExceptionUnauthorizedHttpException;     /**   * 异常处理   *   * Date: 21/03/2018   * @author George   * @package AppExceptions   */  class Handler extends ExceptionHandler  {  	use InterfaceResponse;      /**    * 定义不需要记录的异常类    *    * @var array    */   protected $dontReport = [  		HttpException::class,  		ValidationException::class,  		ModelNotFoundException::class,  		AuthorizationException::class,  		AuthenticationException::class,  	];      /**    * A list of the inputs that are never flashed for validation exceptions.    *    * @var array    */   protected $dontFlash = [    'password',    'password_confirmation',   ];     	/**  	 * 定义需要记录的异常  	 *  	 * Date: 21/03/2018  	 * @author George  	 * @param Exception $exception  	 * @return mixed|void  	 * @throws Exception  	 */   public function report(Exception $exception)   {    parent::report($exception);   }     	/**  	 * 拦截异常并生成对应的响应内容  	 *  	 * Date: 21/03/2018  	 * @author George  	 * @param IlluminateHttpRequest $request  	 * @param Exception $exception  	 * @return IlluminateContractsRoutingResponseFactory|SymfonyComponentHttpFoundationResponse  	 */   public function render($request, Exception $exception)   {   	// 拦截数据库操作异常  // 	if ($exception instanceof QueryException) {  // 		Log::error($exception);  // 		return $this->internalError();  //		}     		// 拦截一般异常并生成响应  		if ($exception instanceof GeneralException) {  			return failed($exception->getMessage(), $exception->getCode() ?: 500);  		}     		// 拦截404异常  		if ($exception instanceof ModelNotFoundException) {  			return $this->notFound();  		}     		// 拦截授权异常  		if ($exception instanceof AuthorizationException) {  			return failed('您无权访问', 403);  		}     		// 参数验证错误的异常,我们需要返回 400 的 http code 和一句错误信息  		if ($exception instanceof ValidationException) {  			return failed(array_first(array_collapse($exception->errors())), 422);  		}     		// 用户认证的异常,我们需要返回 401 的 http code 和错误信息  		if ($exception instanceof UnauthorizedHttpException) {  			return failed('未提供Token', 401);  		}     		// 捕获404异常  		if ($exception instanceof NotFoundHttpException) {   		return $this->notFound();  		}       return parent::render($request, $exception);   }     	/**  	 * 认证失败后抛出异常  	 *  	 * Date: 2018/5/27  	 * @author George  	 * @param IlluminateHttpRequest $request  	 * @param AuthenticationException $exception  	 * @return IlluminateHttpJsonResponse|IlluminateHttpResponse  	 */  	public function unauthenticated($request, AuthenticationException $exception)  	{  		return failed('身份认证失败', 401);   }  }  

以上这篇Laravel 框架返回状态拦截代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解Laravel 框架返回状态拦截代码分享!且更多的php教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/470737.html

(0)
上一篇 2020年10月26日
下一篇 2020年10月26日

精彩推荐