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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
数据库查询记录php 多行多列显示
Aug 15 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
php中防止恶意刷新页面的代码小结
Oct 31 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
PHP利用MySQL保存session的实现思路及示例代码
Sep 09 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 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
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
python图像处理之反色实现方法
2015/05/30 Python
详解Python import方法引入模块的实例
2017/08/02 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
python3 爬取图片的实例代码
2018/11/06 Python
python实现石头剪刀布程序
2021/01/20 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
浅谈Python中os模块及shutil模块的常规操作
2020/04/03 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
旅游文化节策划方案
2014/06/06 职场文书
活动总结新闻稿
2014/08/30 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers