在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页面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。