laravel 利用中间件进行操作日志记录
Posted 木偶跳舞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 利用中间件进行操作日志记录相关的知识,希望对你有一定的参考价值。
利用中间件进行操作日志记录过程:
1、创建中间件
php artisan make:middleware AdminOperationLog
2、生成了文件./app/Http/Middleware/AdminOperationLog.php
代码如下:
<?php
namespace 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',
],
];
此时进行操作时就会记录操作日志
以上是关于laravel 利用中间件进行操作日志记录的主要内容,如果未能解决你的问题,请参考以下文章