本文實例講述了Laravel框架實現(xiàn)利用中間件進行操作日志記錄功能。分享給大家供大家參考,具體如下:
利用中間件進行操作日志記錄過程:
1、創(chuàng)建中間件
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(); # 提前創(chuàng)建表、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',
- ],
- ];
此時進行操作時就會記錄操作日志。
新聞熱點
疑難解答