@php use App\Models\MenuPermission; use App\Models\MenuConfig; use Filament\Facades\Filament; // 获取当前用户 $user = Filament::getCurrentPanel()->auth()->user(); // 检查是否是管理员 $isAdmin = $user && ( $user->role === 'admin' || $user->username === '17689974321' ); if (!$isAdmin) { return; } // 获取当前路径 $currentPath = request()->path(); $menuKey = null; // 根据路径映射到菜单键 $menuMappings = [ 'admin/ocr-paper-grading' => 'ocr-paper-grading', 'admin/exam-analysis' => 'exam-analysis', 'admin/dashboard' => 'dashboard', 'admin/exam-history' => 'exam-history', 'admin/intelligent-exam-generation' => 'intelligent-exam-generation', 'admin/knowledge-graph' => 'knowledge-graph', 'admin/student-management' => 'student-management', 'admin/teacher-management' => 'teacher-management', ]; // 查找匹配的菜单键 foreach ($menuMappings as $path => $key) { if (str_contains($currentPath, $path)) { $menuKey = $key; break; } } if (!$menuKey) { return; } // 检查该菜单是否纳入管理系统 $menuConfig = MenuConfig::where('menu_key', $menuKey)->first(); if (!$menuConfig || !$menuConfig->is_managed || !$menuConfig->is_active) { return; } // 获取用户ID $userId = $user->teacher_id ?? $user->id; // 获取当前菜单可见性 $isVisible = MenuPermission::isMenuVisible($userId, $menuKey); // 获取菜单显示名称 $menuLabel = $menuConfig->menu_label ?? $menuKey; @endphp
菜单: