利用中间件进行操作日志记录过程:
1、创建中间件
php artisan make:middleware AdminOperationLog
2、生成了文件./app/Http/Middleware/AdminOperationLog.php
代码如下:
<?phpnamespace App\Http\Middleware;use Closure;use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth;use App\Http\Models\OperationLog;class AdminOperationLog{/*** Handle an incoming request.** @param \Illuminate\Http\Request $request* @param \Closure $next* @return mixed*/public function handle($request, Closure $next){$user_id = 0;if(Auth::check()) {$user_id = (int) Auth::id();}$_SERVER['admin_uid'] = $user_id;if('GET' != $request->method()){$input = $request->all();$log = new OperationLog(); # 提前创建表、model$log->uid = $user_id;$log->path = $request->path();$log->method = $request->method();$log->ip = $request->ip();$log->sql = '';$log->input = json_encode($input, JSON_UNESCAPED_UNICODE);$log->save(); # 记录日志}return $next($request);}}
3、中间件引入 ./app/Http/Kernel.php
protected $middlewareGroups = ['web' => [...\App\Http\Middleware\AdminOperationLog::class,...],'api' => ['throttle:60,1','bindings',],];
此时进行操作时就会记录操作日志
