SystemOperationLog.php 955 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Carbon;
  6. use Illuminate\Support\Facades\Auth;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use hisorange\BrowserDetect\Parser as Browser;
  9. class SystemOperationLog
  10. {
  11. /**
  12. * Handle an incoming request.
  13. *
  14. * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
  15. */
  16. public function handle(Request $request, Closure $next): Response
  17. {
  18. \App\Models\SystemOperationLog::query()->create([
  19. 'ip' => $request->getClientIp(),
  20. 'request_at' => Carbon::now(),
  21. 'user_id' => Auth::id(),
  22. 'url' => substr($request->getRequestUri(), 0, 250),
  23. 'method' => $request->getMethod(),
  24. 'browser' => Browser::browserName(),
  25. 'platform' => Browser::platformName(),
  26. ]);
  27. return $next($request);
  28. }
  29. }