实现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 相关文章推荐
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
php 取得瑞年与平年的天数的代码
Aug 10 PHP
PHP 可阅读随机字符串代码
May 26 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
ThinkPHP模板替换与系统常量及应用实例教程
Aug 22 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP+ajax分页实例简析
Dec 07 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
Nov 30 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 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
Session保存到数据库的php类分享
2011/10/24 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
koa-router源码学习小结
2018/09/07 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python高斯消除矩阵
2019/01/02 Python
python画图的函数用法以及技巧
2019/06/28 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
小学生自我评价范例
2013/09/24 职场文书
霸气队列口号
2014/06/18 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
Nginx HTTP跳转至HTTPS
2022/05/15 Servers