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 SQL防注入代码集合
Apr 25 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 PHP
解析php中的escape函数
Jun 29 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
php判断文件上传图片格式的实例详解
Sep 30 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
农民C键的运用技巧
2020/03/04 星际争霸
在PHP中操作Excel实例代码
2010/04/29 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
php生成随机颜色的方法
2014/11/13 PHP
php绘制一个扇形的方法
2015/01/24 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP fclose函数用法总结
2019/02/15 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
JS实现横向轮播图(初级版)
2020/06/24 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python中bisect的用法
2014/09/23 Python
Flask之flask-session的具体使用
2018/07/26 Python
Python属性和内建属性实例解析
2020/01/14 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
python推导式的使用方法实例
2021/02/28 Python
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
模具数控专业自荐信
2014/01/27 职场文书
全国道德模范事迹
2014/02/01 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
整改落实自查报告
2014/11/05 职场文书
2015年高三年级组工作总结
2015/07/21 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android