$this->assignRolePermission($params, $id), 'model' => $this->assignModelPermission($params, $id), default => self::error('PARAMS_TYPE_ERROR', Response::HTTP_UNPROCESSABLE_ENTITY) }; } /** * @throws ApiException */ public function assignRolePermission($params, $id): void { $params['guard_name'] = $params['guard_name'] ?? Guard::getDefaultName(static::class); // 获取角色 $role = Role::findById($id, $params['guard_name']); !$role && self::error('ROLE_NOT_EXISTS', Response::HTTP_UNPROCESSABLE_ENTITY); // 获取多个权限 $permissions = Permission::query()->whereIn('id', $params['permission'])->get(); // 给角色添加多个权限 $role->syncPermissions($permissions); // 记录操作日志上下文 // LogRecordContext.putVariable("role", role); // return role.getId(); } public function assignModelPermission($params, $id) { } public function getMenus($id, $class) { $classInstance = app($class); // 角色类型 if ($class === Role::class) { $role = $classInstance::findById($id); return $role->getAllPermissions()->pluck('id'); } return []; } }