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 - Html Transfer Code
Oct 09 PHP
PHP实现文件安全下载
Oct 09 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
JS 网站性能优化笔记
May 24 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
php查询及多条件查询
Feb 26 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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
js和php邮箱地址验证的实现方法
2014/01/09 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
php微信开发自定义菜单
2016/08/27 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
js word表格动态添加代码
2010/06/07 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
小学教师的自我评价范例
2013/10/31 职场文书
中学运动会广播稿
2014/01/19 职场文书
《三峡》教学反思
2014/03/01 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python