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音乐采集(部分代码)
Feb 14 PHP
php mysql数据库操作类
Jun 04 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php防止SQL注入详解及防范
Nov 12 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
php检查字符串中是否有外链的方法
Jul 29 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
Jan 30 PHP
PHP最常用的正则表达式
Feb 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中cookies使用指南
2007/03/16 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
python mysqldb连接数据库
2009/03/16 Python
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
Jar包的作用是什么
2014/03/30 面试题
中级会计大学生职业生涯规划书
2014/09/16 职场文书
教师年终个人总结
2015/02/11 职场文书
格林童话读书笔记
2015/06/30 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
公司与个人合作协议书
2016/03/19 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书