laravel 框架配置404等异常页面


Posted in PHP onJanuary 07, 2019

在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);
}

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

laravel 框架配置404等异常页面

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

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

laravel 框架配置404等异常页面

这时候我们发现原来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 相关文章推荐
BBS(php & mysql)完整版(六)
Oct 09 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
php使用google地图应用实例
Dec 31 PHP
php根据日期或时间戳获取星座信息和生肖等信息
Oct 20 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
PHP array_shift()用法实例分析
Jan 07 #PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 #PHP
PHP一个简单的无需刷新爬虫
Jan 05 #PHP
PHP智能识别收货地址信息实例
Jan 05 #PHP
PHP数字金额转换成中文大写显示
Jan 05 #PHP
PHP yield关键字功能与用法分析
Jan 03 #PHP
PHP获取对象属性的三种方法实例分析
Jan 03 #PHP
You might like
Discuz 模板引擎的封装类代码
2008/07/18 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
Laravel下生成验证码的类
2017/11/15 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
2016/10/26 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
Python编写百度贴吧的简单爬虫
2015/04/02 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
用python实现百度翻译的示例代码
2018/03/09 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
python中的colorlog库使用详解
2019/07/05 Python
wxpython绘制音频效果
2019/11/18 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
python 绘制国旗的示例
2020/09/27 Python
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
校园新闻广播稿5篇
2014/10/10 职场文书
2014年体育部工作总结
2014/11/13 职场文书
催款函范本大全
2015/06/24 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript