发布于 1970-01-01 08:00
  • 1 个回答
    • Middleware或者App\Exceptions\Handler里捕获
      Symfony\Component\HttpKernel\Exception\NotFoundHttpException

      如果是Middleware

      use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
      
      public function handle($request, Closure $next) {
          try {
              return $next($request);
          } catch (NotFoundHttpException $e) {
              return response()->json(['msg'=>'NotFound']);
          }
      }
      

      2017.04.04 更新

      已知laravel5的默认Exceptions\Handler会优先匹配404异常,所以建议在Handler进行处理。

      修改app/Exceptions/Handler.phprender方法如下

      /**
       * Render an exception into an HTTP response.
       *
       * @param  \Illuminate\Http\Request  $request
       * @param  \Exception  $exception
       * @return \Illuminate\Http\Response
       */
      public function render($request, Exception $exception)
      {
          if (is_a($exception, \Symfony\Component\HttpKernel\Exception\NotFoundHttpException::class) && $request->expectsJson()) {
              return response()->json(['msg'=>'NotFound']);
          } else {
              return parent::render($request, $exception);
          }
      }
      2022-12-01 12:50 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有