format('Y-m-d H:i:s'); } public function scopeWithDataPermission(Builder $query): Builder { $admin = runCatching(fn() => admin(), "无法获取登录状态")->getOrDefault([]); // 超管判断(可选,也可以在规则里配置*) $isSuper = true; foreach (['hospitals', 'departments'] as $attr) { if (($admin[$attr] ?? '') !== '*') { $isSuper = false; break; } } if ($isSuper) return $query; // 使用服务类应用权限 $service = new DataPermissionService($admin); return $service->apply($query); } }