概述
1 . 创建一个中间件
执行: php artisan make:middleware OperationLog
2 . 在中间件中编写一个writeLog() 或者直接写在handle里面
<?php namespace AppHttpMiddleware; use AppUser; use Closure; use IlluminateSupportFacadesAuth; class OperationLog { /** * Handle an incoming request. * * @param IlluminateHttpRequest $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 AppModelsOperationLog(); $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 ModelsOperationLog
<?php namespace AppModels; use IlluminateDatabaseEloquentModel; 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 = [ ......., ......., ......., AppHttpMiddlewareOperationLog::class, ];
大功告成…
以上这篇实现laravel 插入操作日志到数据库的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持靠谱客。
最后
以上就是背后红酒为你收集整理的实现laravel 插入操作日志到数据库的方法的全部内容,希望文章能够帮你解决实现laravel 插入操作日志到数据库的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复