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 相关文章推荐
php处理json时中文问题的解决方法
Apr 12 PHP
php获取post中的json数据的实现方法
Jun 08 PHP
解析php常用image图像函数集
Jun 24 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
php不写闭合标签的好处
Mar 04 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php递归删除目录与文件的方法
Jan 30 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
PHP实现的简单异常处理类示例
May 04 PHP
PHP实现批量修改文件名的方法示例
Sep 18 PHP
PHP基本语法
Mar 31 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
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
12个非常有创意的JavaScript小游戏
2010/03/18 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
关于jQuery中的end()使用方法
2011/07/10 Javascript
jQuery中[attribute*=value]选择器用法实例
2014/12/31 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python nmap实现端口扫描器教程
2020/05/28 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
高级Java程序员面试题
2016/06/23 面试题
公司庆典活动邀请函
2014/01/09 职场文书
志愿者活动总结
2014/04/28 职场文书
小学总务工作总结
2015/08/13 职场文书
家访教师心得体会
2016/01/23 职场文书
如何书写邀请函?
2019/06/24 职场文书
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android