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 相关文章推荐
PHP数组交集的优化代码分析
Mar 06 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
php获取文件大小的方法
Feb 26 PHP
PHP生成随机密码类分享
Jun 25 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
php简单实现快速排序的方法
Apr 04 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
ThinkPHP安装和设置
Jul 27 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 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
咖啡与牛奶
2021/03/03 冲泡冲煮
多个PHP中文字符串截取函数
2013/11/12 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
BootStrap入门教程(一)之可视化布局
2016/09/19 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
Python enumerate索引迭代代码解析
2018/01/19 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
自荐书封面下载
2013/11/29 职场文书
商场总经理岗位职责
2014/02/03 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
消防安全宣传口号
2014/06/10 职场文书
阅兵口号
2014/06/19 职场文书
新生入学欢迎词
2015/01/26 职场文书
商超业务员岗位职责
2015/02/13 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
公司奖励通知
2015/04/21 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
毕业生政审意见范文
2015/06/04 职场文书
功夫熊猫观后感
2015/06/10 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
python代码实现扫码关注公众号登录的实战
2021/11/01 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python