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 相关文章推荐
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
PHP 命名空间实例说明
Jan 27 PHP
php通过array_merge()函数合并两个数组的方法
Mar 18 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
php提高网站效率的技巧
Sep 29 PHP
php实现的操作excel类详解
Jan 15 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
PHP简单判断手机设备的方法
Aug 23 PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
php中yar框架实例用法讲解
Dec 27 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/02/27 无线电
php获取域名的google收录示例
2014/03/24 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
JS实现左边列表移到到右边列表功能
2018/03/28 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
python 测试实现方法
2008/12/24 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
python实现简单点对点(p2p)聊天
2017/09/13 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
便利店的创业计划书
2014/01/15 职场文书
《石榴》教学反思
2014/03/02 职场文书
厕所文明标语
2014/06/11 职场文书
西双版纳导游词
2015/02/03 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
2016年寒假社会实践活动总结
2015/10/10 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server