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采集时被封ip的解决方法
Aug 29 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
Cookie跨域问题解决方案代码示例
Nov 24 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生成图片验证码的实例讲解
2015/08/03 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
自定义vue组件发布到npm的方法
2018/05/09 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
微信跳一跳游戏python脚本
2020/04/01 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python验证身份证信息实例代码
2019/05/06 Python
Python for i in range ()用法详解
2020/09/18 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
Python3开发环境搭建详细教程
2020/06/18 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
.NET初级开发工程师面试题
2014/04/18 面试题
恶意软件的定义
2014/11/12 面试题
生物制药毕业生自荐信
2013/10/16 职场文书
英语文学专业学生的自我评价
2013/10/31 职场文书
英文简历中的自我评价用语
2013/12/09 职场文书
详细的大学生创业计划书模板
2014/01/27 职场文书
花店创业计划书范文
2014/02/07 职场文书
感恩教育月活动总结
2014/07/07 职场文书
勇敢的心观后感
2015/06/09 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
为什么说餐饮很难做,是因为你不了解这些新规则
2019/08/20 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js