实现laravel 插入操作日志到数据库的方法
发布:smiling 来源: PHP粉丝网 添加日期:2022-01-01 21:57:50 浏览: 评论:0
今天小编就为大家分享一篇实现laravel 插入操作日志到数据库的方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。
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,
- ];
大功告成…
Tags: laravel插入操作日志
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)