资讯专栏INFORMATION COLUMN

laravel 框架配置404等异常页面

kel / 3191人阅读

摘要:在中所有的异常都由类处理,该类包含两个方法和,其中方法将异常渲染到响应中。

在Laravel中所有的异常都由Handler类处理,该类包含两个方法:report和render,其中render方法将异常渲染到http响应中。laravel的Handler类文件位置:app/Exceptions/Handler,由于render方法时间异常渲染到http响应中,所以我们只需要修改下render方法即可
网上很多的方法是将render方法修改成:

public function render($request, Exception $exception)
{
    if ($exception) {
        return response()->view("error.".$exception->getStatusCode(), [],$exception->getStatusCode());
    }
    return parent::render($request, $exception);
}

这时候你的测试可能是没有问题的,但是如果你如果写了登录的方法的话,这时候如果你访问必须要登录的页面的时候,这时候会报错

这是由于如果你访问了必须要登录的页面的时候,这时候就会进入app/Exceptions/Handler.php的render方法,这时候$exception->getStatusCode()是不存在的,这时候就会报错了,那么如何解决呢?

这时候我们找到parent::render的方法所在:

这时候我们发现原来laravel框架已经将我们的这种情况包含进去了,那么我们就可以即将上面的方法改为:

public function render($request, Exception $exception)
{
    if (!($exception instanceof AuthenticationException)) {
        return response()->view("error.".$exception->getStatusCode(), [],$exception->getStatusCode());
    }
    return parent::render($request, $exception);
}

这时候就完美解决了这个问题
然后在resources/view/error/下面新建错误页面,错误页面的命名为:{errorcode}..balde.php,其中的errorcode为错误码,例如404..balde.php

配置完成后访问一个不存在的路由时即可跳转到你配置的404页面

作者:huaweichenai
来源:www.wj0511.com
原文:https://www.wj0511.com/site/d...
版权声明:本文为博主原创文章,转载请附上博文链接!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29892.html

相关文章

  • 使用 Laravel 5.5+ 更好的来实现 404 响应

    摘要:所以,现在我们可以使用具有正常页面和页脚的应用布局,来替代简单的视图,同时还能给用户显示一条友好的提示信息。 译文首发于 使用 Laravel 5.5+ 更好的来实现 404 响应,转载请注明出处! Laravel 5.5.10 封装了两个有用的路由器方法,可以帮助我们为用户提供更好的 404 页面。现在,当抛出 404 异常时,Laravel 会显示一个漂亮的 404.blade.p...

    pepperwang 评论0 收藏0
  • Laravel异常:捕获,处理和创建

    摘要:很多开发者在开发过程中都会遇到异常,处理过程大同小异捕获然后处理,事实上也确实是如此。但本文不打算谈太多错误与异常的原理,只是从自带的入手,谈一谈怎样用一个更好的方式处理错误信息。好处是及时捕获不可预知的错误,给用户一个更好的体验。 很多开发者在开发过程中都会遇到异常,处理过程大同小异:捕获然后处理,事实上也确实是如此。但本文不打算谈太多错误与异常的原理,只是从laravel自带的Ex...

    lbool 评论0 收藏0
  • Laravel+vue实现history模式URL可行方案

    摘要:项目实现前后端分离。默认模式使用的来模拟一个完整的,于是当改变时,页面不会重新加载。没有特别的要求的话,模式亦正常访问。看看文档,要实现模式也很简单。切换一下模式,本地测试啦。配置一下没错,部署前端资源服务器上简单加上一条通用匹配规则。 项目:laravel + vue 实现前后端分离。vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 UR...

    WilsonLiu95 评论0 收藏0
  • Laravel+vue实现history模式URL可行方案

    摘要:项目实现前后端分离。默认模式使用的来模拟一个完整的,于是当改变时,页面不会重新加载。没有特别的要求的话,模式亦正常访问。看看文档,要实现模式也很简单。切换一下模式,本地测试啦。配置一下没错,部署前端资源服务器上简单加上一条通用匹配规则。 项目:laravel + vue 实现前后端分离。vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 UR...

    YacaToy 评论0 收藏0
  • Laravel 中使用 Slack 进行异常通知

    摘要:是一款即时通信软件,类似于,它提供开放的,可以调用它向自己团队中指定的个人或者频道发送消息,因此用它来进行异常通知是再合适不过的。这样,当程序中出现异常时,运维能在第一时间收到相关的通知信息,方便及时处理了。 异常处理是软件开发过程中无法逃避的问题。对于一套设计良好代码高效的程序,出现异常的可能性会比较低,但这并不意味着不会出现异常,有些异常甚至会引起严重的后果,所以如何及时的发现程序...

    imccl 评论0 收藏0

发表评论

0条评论

kel

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<