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 相关文章推荐
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
php数组编码转换示例详解
Mar 11 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
Aug 21 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
一个非常实用的php文件上传类
Jul 04 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP开发中解决并发问题的几种实现方法分析
Nov 13 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 FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
js 操作select相关方法函数
2009/12/06 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
Python中的类与对象之描述符详解
2015/03/27 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
python多线程下信号处理程序示例
2019/05/31 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
如何在django中实现分页功能
2020/04/22 Python
python怎么判断素数
2020/07/01 Python
WiFi云数码相框:Nixplay
2018/07/05 全球购物
销售副总经理岗位职责
2013/12/11 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
环卫工作个人总结
2015/03/04 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis