Laravel框架实现利用中间件进行操作日志记录功能


Posted in PHP onJune 06, 2018

本文实例讲述了Laravel框架实现利用中间件进行操作日志记录功能。分享给大家供大家参考,具体如下:

利用中间件进行操作日志记录过程:

1、创建中间件

php artisan make:middleware AdminOperationLog

2、生成了文件./app/Http/Middleware/AdminOperationLog.php

代码如下:

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Models\OperationLog;
class AdminOperationLog
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $user_id = 0;
    if(Auth::check()) {
      $user_id = (int) Auth::id();
    }
    $_SERVER['admin_uid'] = $user_id;
    if('GET' != $request->method()){
      $input = $request->all();
      $log = new OperationLog(); # 提前创建表、model
      $log->uid = $user_id;
      $log->path = $request->path();
      $log->method = $request->method();
      $log->ip = $request->ip();
      $log->sql = '';
      $log->input = json_encode($input, JSON_UNESCAPED_UNICODE);
      $log->save();  # 记录日志
    }
    return $next($request);
  }
}

3、中间件引入 ./app/Http/Kernel.php

protected $middlewareGroups = [
    'web' => [
      ...
      \App\Http\Middleware\AdminOperationLog::class,
      ...
    ],
    'api' => [
      'throttle:60,1',
      'bindings',
    ],
  ];

此时进行操作时就会记录操作日志

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP添加Xdebug扩展的方法
Feb 12 PHP
Zend Framework页面缓存实例
Jun 25 PHP
php树型类实例
Dec 05 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php session的锁和并发
Jan 22 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
PHP对象相关知识总结
Apr 09 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
PHP回调函数概念与用法实例分析
Nov 03 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 14 PHP
PHP实现的curl批量请求操作示例
Jun 06 #PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 #PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 #PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 #PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 #PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 #PHP
PHP实现的超长文本分页显示功能示例
Jun 04 #PHP
You might like
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
求PHP数组最大值,最小值的代码
2011/10/31 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
JS 统计时间
2021/03/09 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
JS中substring与substr的用法
2016/11/16 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
Python入门篇之列表和元组
2014/10/17 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
python复制与引用用法分析
2015/04/08 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
python测试mysql写入性能完整实例
2018/01/18 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
python使用matplotlib画饼状图
2018/09/25 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
创业计划书中包含的9个方面
2013/12/26 职场文书
内业资料员岗位职责
2014/01/04 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
教师辞职书范文
2015/02/26 职场文书
百年校庆感言
2015/08/01 职场文书