SkinIdValidator.php 814 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Module\Game\Validator;
  3. use App\Module\Game\Services\SkinService;
  4. use UCore\Validator;
  5. /**
  6. * 皮肤ID验证器
  7. */
  8. class SkinIdValidator extends Validator
  9. {
  10. /**
  11. * 验证皮肤ID是否有效
  12. *
  13. * @param mixed $value 要验证的值
  14. * @param array $data 所有数据
  15. * @return bool
  16. */
  17. public function validate(mixed $value, array $data): bool
  18. {
  19. // 检查是否为整数
  20. if (!is_numeric($value) || (int)$value != $value) {
  21. return $this->addError('皮肤ID必须是整数');
  22. }
  23. $skinId = (int)$value;
  24. // 检查皮肤ID是否有效
  25. if (!SkinService::isValidSkinId($skinId)) {
  26. return $this->addError('无效的皮肤ID,有效范围为1-4');
  27. }
  28. return true;
  29. }
  30. }