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 高手之路(二)
Oct 09 PHP
PHP 基本语法格式
Dec 15 PHP
php中设置多级目录session的问题
Aug 08 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
Oct 30 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
PHP中判断变量为空的几种方法小结
Nov 12 PHP
destoon复制新模块的方法
Jun 21 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
php正确输出json数据的实例讲解
Aug 21 PHP
PHP hex2bin()函数用法讲解
Feb 25 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 文章采集正则代码
2009/12/28 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
jquery 选择器部分整理
2009/10/28 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
vuex进阶知识点巩固
2018/05/20 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
Python使用Scrapy爬取妹子图
2015/05/28 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
Python实现自动上京东抢手机
2018/02/06 Python
python爬取个性签名的方法
2018/06/17 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
平面设计自荐信
2013/10/07 职场文书
气象学专业个人求职信
2014/04/22 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
挂职学习心得体会
2014/09/09 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
作文评语怎么写
2014/12/25 职场文书
新员工入职欢迎词
2015/01/23 职场文书
医生个人年终总结
2015/02/28 职场文书
房地产项目合作意向书
2015/05/08 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL