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个人网站架设连环讲(四)
Oct 09 PHP
IStream与TStream之间的相互转换
Aug 01 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
phpmyadmin导入(import)文件限制的解决办法
Dec 11 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
yii操作session实例简介
Jul 31 PHP
各种快递查询--Api接口
Apr 26 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
扩展String功能方法
2006/09/22 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
了解一点js的Eval函数
2012/07/26 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
vue项目配置同一局域网可使用ip访问的操作
2020/10/23 Javascript
python str与repr的区别
2013/03/23 Python
Django卸载之后重新安装的方法
2017/03/15 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
python+OpenCV实现图像拼接
2020/03/05 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
墨西哥网上超市:Superama
2018/07/10 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
单位门卫岗位职责
2013/12/20 职场文书
求职简历中自我评价
2014/01/28 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
2014年内部审计工作总结
2014/12/09 职场文书