前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >laravel自定义错误页面 原

laravel自定义错误页面 原

作者头像
domain0
发布2018-08-02 11:47:04
发布2018-08-02 11:47:04
98700
代码可运行
举报
文章被收录于专栏:运维一切运维一切
运行总次数:0
代码可运行
  • 在你想报错的地方这样写
代码语言:javascript
代码运行次数:0
运行
复制
abort(500, 'Unauthorized');
  • 自定义你的错误页面 你错误页面命名要和你的错误码一致

放置在:\resources\views\errors下

for example :

\resources\views\errors\500.blade.php

页面里面花花绿绿自己写

  • 关于页面上怎么调用你自定义的错误Message
代码语言:javascript
代码运行次数:0
运行
复制
{$exception->getMessage()}}
  • 调用和抛出异常的过程
  1. abort方法所在的位置 \vendor\laravel\framework\src\Illuminate\Foundation 具体内容如下
代码语言:javascript
代码运行次数:0
运行
复制
    public function abort($code, $message = '', array $headers = [])
    {
        if ($code == 404) {
            throw new NotFoundHttpException($message);
        }

        throw new HttpException($code, $message, null, $headers);
    }

这里抛出了HttpException异常,带出了Message

  1. 异常的捕获位置 载入handler
代码语言:javascript
代码运行次数:0
运行
复制
$app->singleton(
Illuminate\Contracts\Debug\ExceptionHandler::class,
App\Exceptions\Handler::class
);

app\Exceptions\handler.php 在render的时候就携带了这个异常

代码语言:javascript
代码运行次数:0
运行
复制
   /**
     * 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)
        {
            $data = array(
                "code" => 500, 
                "data" => array(
                    "message" => "records not found"
                )
            );
            return response()->json($data);
        }
        return parent::render($request, $e);
    }
  1. 异常具体的响应
代码语言:javascript
代码运行次数:0
运行
复制
  protected function renderHttpException(HttpException $e)
    {
        $status = $e->getStatusCode();

        if (view()->exists("errors.{$status}")) {
            return response()->view("errors.{$status}", ['exception' => $e], $status);
        } else {
            return (new SymfonyDisplayer(config('app.debug')))->createResponse($e);
        }
    }

可以在这里dd($e)看看异常的具体内容。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/05/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档