laravel 自定义错误页面

来源:互联网 发布:人工智能专业就业前景 编辑:程序博客网 时间:2024/04/29 18:13

在以往版本的 Laravel 中,假如你想自定义错误页面——比如当用户访问不存在的页面时显示一张熊猫的图片.

在 Laravel 5 中,这个问题得到了改进。

源代码解析

在新版本的 Laravel 中,所以处理自定义错误和异常的代码都移到了 app/Exceptions/Handler.php 里。

但阅读代码时你可能发现了,默认是这样处理的:

    /**
         * Render an exception into an HTTP response.
            *
           * @param  \Illuminate\Http\Request  $request
           * @param  \Exception  $e
          * @return \Illuminate\Http\Response

     */
   public function render($request, Exception $e)
    {
        if ($e instanceof ModelNotFoundException) {
            $e = new NotFoundHttpException($e->getMessage(), $e);
        }

        return parent::render($request, $e);
    }

对所有的 HTTP 异常(比如 404 或者 503 这样的异常),获取错误码。并返回给父元素,所以我们继续追溯到它的父类, Illuminate\Foundation\Exceptions\Handler , 在这个类里面,我们找到了 renderHttpException() 方法的代码:

    /**     * Render the given HttpException.     *     * @param  \Symfony\Component\HttpKernel\Exception\HttpException  $e     * @return \Symfony\Component\HttpFoundation\Response     */    protected function renderHttpException(HttpException $e)    {        $status = $e->getStatusCode();        if (view()->exists("errors.{$status}")) {            return response()->view("errors.{$status}", ['exception' => $e], $status);        } else {            return $this->convertExceptionToResponse($e);        }    }

如何实现自定义页面

根据上述分析我们只需在  resources\views  新建一个errors目录 ,在里面创建错误文件,例如:404.blade.php    503.blade.php  等等,实现自定义错误页面就这么简单

0 0
原创粉丝点击