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 相关文章推荐
example1.php
Oct 09 PHP
分享PHP入门的学习方法
Jan 02 PHP
简单的PHP图片上传程序
Mar 27 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
May 08 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
Sep 06 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
Symfony控制层深入详解
Mar 17 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 PHP
Swoole扩展的6种模式深入详解
Mar 04 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
javascript打印输出json实例
2013/11/11 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
Keras 使用 Lambda层详解
2020/06/10 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
教师推荐信范文
2013/11/24 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
公务员保密承诺书
2014/03/27 职场文书
爱护公共设施的标语
2014/06/24 职场文书
农村门前三包责任书
2014/07/25 职场文书
护士自荐信范文
2015/03/25 职场文书
电信营业员岗位职责
2015/04/14 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python