实现laravel 插入操作日志到数据库的方法


Posted in PHP onOctober 11, 2019

1 . 创建一个中间件

执行: php artisan make:middleware OperationLog

2 . 在中间件中编写一个writeLog() 或者直接写在handle里面

<?php

namespace App\Http\Middleware;

use App\User;
use Closure;
use Illuminate\Support\Facades\Auth;

class OperationLog
{
  /**
   * Handle an incoming request.
   *
   * @param \Illuminate\Http\Request $request
   * @param \Closure $next
   * @return mixed
   */
  public function handle($request, Closure $next)
  {
    $input = $request->all(); //操作的内容
    $path = $request->path(); //操作的路由
    $method = $request->method(); //操作的方法
    $ip = $request->ip(); //操作的IP
    $usernum = $request->usernum; //操作人(要自己获取)
    self::writeLog($usernum,$input,$path,$method,$ip);

    return $next($request);
  }
  public function writeLog($usernum,$input,$path,$method,$ip){

    $user = User::where('usernum',$usernum)->first();

    if($user) {
      $user_id = $user->userid;
    }

    $log = new \App\Models\OperationLog();
    $log->setAttribute('user_id', $user_id);
    $log->setAttribute('path', $path);
    $log->setAttribute('method', $method);
    $log->setAttribute('ip', $ip);
    $log->setAttribute('input', json_encode($input, JSON_UNESCAPED_UNICODE));
    $log->save();
  }
}

3 .创建一个OperationLog模型(这里我放在Models文件夹下了)

执行 : php artisan make:model Models\OperationLog

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class OperationLog extends Model
{

  //定义表
  protected $table = "operation_log";

  //定义主键
  protected $primaryKey = "id";
}

4 . 将中间件注册到Kernel.php 文件

/**
 * The application's global HTTP middleware stack.
 *
 * 这些中间件是在对应用程序的每次请求中运行的
 *
 * @var array
 */
protected $middleware = [
    .......,
    .......,
    .......,
    \App\Http\Middleware\OperationLog::class,
  ];

大功告成…

以上这篇实现laravel 插入操作日志到数据库的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php桌面中心(四) 数据显示
Mar 11 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
php二维数组排序详解
Nov 06 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
php上传文件问题汇总
Jan 30 PHP
常见PHP数据库解决方案分析介绍
Sep 24 PHP
PHP MSSQL 分页实例
Apr 13 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
Aug 12 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
laravel 获取当前url的别名方法
Oct 11 #PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 #PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 #PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 #PHP
零基础php编程好学吗
Oct 11 #PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 #PHP
PHP与SQL语句写一句话木马总结
Oct 11 #PHP
You might like
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
解析PHP无限级分类方法及代码
2013/06/21 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP基于GD库实现的生成图片缩略图函数示例
2017/07/05 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
奥巴马连任演讲稿
2014/05/15 职场文书
女生抽烟检讨书
2014/10/05 职场文书
实习介绍信范文
2015/05/05 职场文书
2019求职信大礼包
2019/05/15 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
PyTorch 如何检查模型梯度是否可导
2021/06/05 Python