实现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中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
php的4种常见运行方式
Mar 20 PHP
浅谈php7的重大新特性
Oct 23 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
微信封装的调用微信签名包的类库
Jun 08 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
laravel-admin 中列表筛选方法
Oct 03 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 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实现计算器小功能
2020/08/28 PHP
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
微信小程序Redux绑定实例详解
2017/06/07 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
python使用super()出现错误解决办法
2017/08/14 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
python实现图片彩色转化为素描
2019/01/15 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
Python sublime安装及配置过程详解
2020/06/29 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
小学教师的自我评价范例
2013/10/31 职场文书
四年大学生活的个人自我评价
2013/12/11 职场文书
班组建设经验交流材料
2014/05/12 职场文书
医生个人年终总结
2015/02/28 职场文书
浅谈MySQL中的六种日志
2022/03/23 MySQL
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏