当前位置:首页 > PHP教程 > php高级应用 > 列表

Laravel框架实现利用中间件进行操作日志记录功能

发布:smiling 来源: PHP粉丝网  添加日期:2018-09-14 10:18:28 浏览: 评论:0 

本文实例讲述了Laravel框架实现利用中间件进行操作日志记录功能。分享给大家供大家参考,具体如下:

利用中间件进行操作日志记录过程:

1、创建中间件

php artisan make:middleware AdminOperationLog

2、生成了文件./app/Http/Middleware/AdminOperationLog.php

代码如下:

  1. <?php 
  2. namespace App\Http\Middleware; 
  3. use Closure; 
  4. use Illuminate\Http\Request; 
  5. use Illuminate\Support\Facades\Auth; 
  6. use App\Http\Models\OperationLog; 
  7. class AdminOperationLog 
  8.   /** 
  9.    * Handle an incoming request. 
  10.    * 
  11.    * @param \Illuminate\Http\Request $request 
  12.    * @param \Closure $next 
  13.    * @return mixed 
  14.    */ 
  15.   public function handle($request, Closure $next
  16.   { 
  17.     $user_id = 0; 
  18.     if(Auth::check()) { 
  19.       $user_id = (int) Auth::id(); 
  20.     } 
  21.     $_SERVER['admin_uid'] = $user_id
  22.     if('GET' != $request->method()){ 
  23.       $input = $request->all(); 
  24.       $log = new OperationLog(); # 提前创建表、model 
  25.       $log->uid = $user_id
  26.       $log->path = $request->path(); 
  27.       $log->method = $request->method(); 
  28.       $log->ip = $request->ip(); 
  29.       $log->sql = ''
  30.       $log->input = json_encode($input, JSON_UNESCAPED_UNICODE); 
  31.       $log->save();  # 记录日志 
  32.     } 
  33.     return $next($request); 
  34.   } 

3、中间件引入 ./app/Http/Kernel.php

  1. protected $middlewareGroups = [ 
  2.     'web' => [ 
  3.       ... 
  4.       \App\Http\Middleware\AdminOperationLog::class
  5.       ... 
  6.     ], 
  7.     'api' => [ 
  8.       'throttle:60,1'
  9.       'bindings'
  10.     ], 
  11.   ]; 

此时进行操作时就会记录操作日志。

Tags: Laravel中间件 框架 功能

分享到: