Laravel5框架自定义错误页面配置操作示例


Posted in PHP onApril 17, 2019

本文实例讲述了Laravel5框架自定义错误页面配置操作。分享给大家供大家参考,具体如下:

♩ 背景

  • 最近试着学习 laravel 5.5,使用 composer 下载新的框架源代码
composer create-project --prefer-dist laravel/laravel lar5Pro 5.5.*
  • 发现在输入错误的链接时,会有如下的提示信息:

Laravel5框架自定义错误页面配置操作示例

  • 想到,一般成型的网站都会自定义404、501、503等页面,所以通过网上搜索方法,进行测试,可推荐如下的实现过程 …
    框架: Laravel 5.5

♪ 操作

①. 解释

  • 所有异常错误都由类 App\Exceptions\Handler 处理,该类包含两个方法:reportrender ,其中的 render 方法会将异常渲染到 HTTP 响应中

②. render 方法优化

  • 参考了网上的相关介绍,发现可以将 App\Exceptions\Handler 中的 render 方法修改为下面的样子:
public function render($request, Exception $exception)
  {
    /* 错误页面 */
    if ($exception) {
      //TODO Laravel5.5 框架中 Exception 类不存在 getStatusCode()方法,或许只能支持前面的版本!
      //$code = $exception->getStatusCode();
      $code = FlattenException::create($exception)->getStatusCode();
      return response()->view('error.' . $code, [], $code);
    }
    return parent::render($request, $exception);
  }

分析

经过对框架源码的查看发现,我们是通过实例化 FlattenException 类来获得请求状态码的,根据提供的测试类 FlattenExceptionTest ,从而得出了上述的代码,建议可以阅读下源代码以做比较

Laravel5框架自定义错误页面配置操作示例

③. 创建 view 页面

  • resources/views/error/ 目录下创建错误页面
  • 命名格式为 {error.code}.blade.php

Laravel5框架自定义错误页面配置操作示例

④. 访问测试

  • 举例来讲,在 404.blade.php 中编辑设计自己的 404页面
  • 通过访问一个不存在的路由,以本人为例,显示效果如下:

Laravel5框架自定义错误页面配置操作示例

  • 默认如果数据处理有错,是 500 异常报错,此时可以通过 debug 查看并进行排错处理…

Laravel5框架自定义错误页面配置操作示例

♫ 附录

  • 根据上面的操作,可扩展创建其他错误页面
  • 此处附录一下 404.blade.php 源代码,仅做参考
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>404页面</title>
  <style>
    #box{
      margin: 0 auto;
      width: 540px;
      height: 540px;
    }
    p{
      margin-bottom: 60px;
      width: 540px;
      height: 20px;
      text-align: center;
      line-height: 20px;
    }
    #mes{
      font-size: 30px;
      color: red;
    }
    .hint{
      color: #999;
    }
    a{
      color: #259AEA;
      text-decoration:none
    }
  </style>
  <script>
    var i = 5;
    var intervalID = setInterval("fun()", 1000);
    function fun() {
      if (i == 0) {
        window.location.href = "/";
        clearInterval(intervalID);
      }
      document.getElementById("mes").innerHTML = i;
      i--;
    }
  </script>
</head>
<body>
<div id="box">
  <img src="{{ asset('images/error/404.jpg') }}" alt="404">
  <p>将在 <span id="mes">5</span> 秒钟后返回 <a href="{{ url('/') }}" rel="external nofollow" >首页</a></p>
  <p class="hint">非常抱歉 - 您可能输入了错误的网址,或者该网页已删除或移动</p>
</div>
</body>
</html>

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
MySql 按时间段查询数据方法(实例说明)
Nov 02 PHP
php表单提交问题的解决方法
Apr 12 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
微信支付开发订单查询实例
Jul 12 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
Jun 11 PHP
laravel框架如何设置公共头和公共尾
Oct 22 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 PHP
php提高脚本性能的4个技巧
Aug 18 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 #PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 #PHP
Laravel中9个不经常用的小技巧汇总
Apr 16 #PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 #PHP
Laravel框架文件上传功能实现方法示例
Apr 16 #PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 #PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 #PHP
You might like
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
用php来检测proxy
2006/10/09 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
js实现消息滚动效果
2017/01/18 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Python中的__SLOTS__属性使用示例
2015/02/18 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python返回昨天日期的方法
2015/05/13 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python绘图实现显示中文
2019/12/04 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Python求凸包及多边形面积教程
2020/04/12 Python
Python内存映射文件读写方式
2020/04/24 Python
实体的生命周期
2013/08/31 面试题
成品仓管员岗位职责
2013/12/11 职场文书
法律专业自荐信
2014/06/03 职场文书
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android