logOperation($request, $response, $executionTime); return $response; } /** * 记录操作日志 */ private function logOperation(Request $request, Response $response, float $executionTime): void { try { // 排除一些不需要记录的路径 $excludedPaths = [ 'api/operation-logs', 'api/auth/login', 'api/auth/refresh', 'sanctum/csrf-cookie', ]; $path = $request->path(); foreach ($excludedPaths as $excludedPath) { if (strpos($path, $excludedPath) === 0) { return; } } // 排除OPTIONS请求 if ($request->method() === 'OPTIONS') { return; } // 获取响应数据 $responseData = []; if ($response->headers->get('Content-Type') === 'application/json') { $content = $response->getContent(); if ($content) { $responseData = json_decode($content, true) ?? []; } } // 记录操作日志 OperationLog::logApiRequest($request, $response, $executionTime); } catch (\Exception $e) { // 记录日志失败时不中断请求 \Log::error('记录操作日志失败: ' . $e->getMessage()); } } }