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 文件上传实例代码
Apr 19 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
smarty获得当前url的方法分享
Feb 14 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
yii用户注册表单验证实例
Dec 26 PHP
PHP消息队列用法实例分析
Feb 12 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
php中str_pad()函数用法分析
Mar 28 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
详解NodeJs开发微信公众号
2018/05/25 NodeJs
页面点击小红心js实现代码
2018/05/26 Javascript
vue ssr 指南详读
2018/06/29 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
Python根据区号生成手机号码的方法
2015/07/08 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
使用Python函数进行模块化的实现
2019/11/15 Python
python创建子类的方法分析
2019/11/28 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python实现代码审查自动回复消息
2021/02/01 Python
电子技术专业中专生的自我评价
2013/12/17 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书