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中使用Oracle数据库(2)
Oct 09 PHP
PHP Google的translate API代码
Dec 10 PHP
深入理解PHP中的Session和Cookie
Jun 21 PHP
php中rename函数用法分析
Nov 15 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
PHP实现的json类实例
Jul 28 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
PHP最常用的正则表达式
Feb 13 PHP
php正则判断是否为合法身份证号的方法
Mar 16 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
Mar 15 PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 PHP
Laravel相关的一些故障解决
Aug 19 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判断手机访问还是电脑访问示例分享
2014/01/20 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
Python map和reduce函数用法示例
2015/02/26 Python
Python实现在线音乐播放器
2017/03/03 Python
cmd运行python文件时对结果进行保存的方法
2018/05/16 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
存储过程和函数的区别
2013/05/28 面试题
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
小饰品店的创业计划书范文
2013/12/28 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书