实现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新手上路(十)
Oct 09 PHP
PHP实现多条件查询实例代码
Jul 17 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
Laravel框架表单验证详解
Sep 04 PHP
thinkphp常见路径用法分析
Dec 02 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
php删除指定目录的方法
Apr 03 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
php compact 通过变量创建数组
Nov 15 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
PHP网页安全认证的实例详解
Sep 28 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
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
JavaScript插入动态样式实现代码
2012/02/22 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Mac 上切换Python多版本
2017/06/17 Python
Python无损音乐搜索引擎实现代码
2018/02/02 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
pycharm运行scrapy过程图解
2019/11/22 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
会务接待方案
2014/02/27 职场文书
校园演讲稿汇总
2014/05/21 职场文书
生日庆典策划方案
2014/06/02 职场文书
2014年采购部工作总结
2014/11/20 职场文书
2014年残联工作总结
2014/11/21 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏