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
PHP垃圾回收机制简单说明
Jul 22 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
Jul 12 PHP
php操作JSON格式数据的实现代码
Dec 24 PHP
PHP 图片水印类代码
Aug 27 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 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 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
JavaScript DOM 学习总结(五)
2015/11/24 Javascript
jQuery 局部div刷新和全局刷新方法总结
2016/10/05 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
JS实现星星海特效
2019/12/24 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python yield 使用浅析
2015/05/28 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
对Django外键关系的描述
2019/07/26 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
python设置中文界面实例方法
2020/10/27 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
乌克兰在线药房:Аптека24
2019/10/30 全球购物
晚会邀请函范文
2014/01/24 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
2014年司法局工作总结
2014/12/11 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
解决Oracle数据库用户密码过期
2022/05/11 Oracle