laravel 框架配置404等异常页面
在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页面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: PHP智能识别收货地址信息实例
下一篇: PHP如何通过表单直接提交大文件详解
推荐阅读
-
Laravel5.6框架使用CKEditor5相关配置详解
-
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
-
laravel 框架配置404等异常页面
-
Laravel框架环境与配置操作实例分析
-
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
-
laravel 框架配置404等异常页面的方法详解(代码示例)
-
基于webpack实现多html页面开发框架五 开发环境配置 babel配置
-
Laravel 5框架学习之环境与配置
-
SpringBoot系列教程web篇之404、500异常页面配置
-
SSM框架配置Interceptor拦截器对所有页面拦截判断登录状态