实现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 相关文章推荐
提问的智慧
Oct 09 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
Jul 22 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
Dec 08 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
Dec 19 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
laravel自定义分页效果
Jul 23 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 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的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php实现将Session写入数据库
2015/07/26 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
加快Vue项目的开发速度的方法
2018/12/12 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
python字符串排序方法
2014/08/29 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python对excel的基本操作方法
2021/02/18 Python
请解释流与文件有什么不同
2016/07/29 面试题
面向对象概念面试题(.NET)
2016/11/04 面试题
行政助理岗位职责范文
2013/12/03 职场文书
机关作风建设心得体会
2014/10/22 职场文书
公积金接收函格式
2015/01/30 职场文书
采购员岗位职责范本
2015/04/07 职场文书
单位综合评价意见
2015/06/05 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js