实现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 相关文章推荐
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
Feb 14 PHP
typecho插件编写教程(五):核心代码
May 28 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
PHP编写的图片验证码类文件分享
Jun 06 PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 PHP
php正则修正符用法实例详解
Dec 29 PHP
PHP实现阿里大鱼短信验证的实例代码
Jul 10 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判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
javascript 写类方式之四
2009/07/05 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
用innerhtml提高页面打开速度的方法
2013/08/02 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
vue实现抖音时间转盘
2019/09/08 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
Python入门之modf()方法的使用
2015/05/15 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
python实现数字炸弹游戏
2020/07/17 Python
软件测试常见笔试题
2012/02/04 面试题
《蓝色的树叶》教学反思
2014/02/24 职场文书
三问三解心得体会
2014/09/05 职场文书
2014年物资管理工作总结
2014/12/02 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
gojs实现蚂蚁线动画效果
2022/02/18 Javascript