DataValidation.php 904 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace UCore\Validator;
  3. use UCore\ValidationCore;
  4. use UCore\Validator;
  5. /**
  6. * 数据验证器
  7. *
  8. * 使用指定的Validation类验证整个数据
  9. */
  10. class DataValidation extends Validator
  11. {
  12. /**
  13. * 验证数据
  14. *
  15. * args[0] 验证器类名
  16. *
  17. * @param mixed $values 要验证的值
  18. * @param array $data 所有验证数据
  19. * @return bool 验证是否通过
  20. */
  21. public function validate(mixed $values, array $data): bool
  22. {
  23. $validationClass = $this->args[0];
  24. /**
  25. * @var ValidationCore $validation
  26. */
  27. $validation = new $validationClass($data);
  28. $validation->validate();
  29. if ($validation->isFail()) {
  30. $errorMessage = $validation->firstError();
  31. $this->addError("数据验证失败: {$errorMessage}");
  32. return false;
  33. }
  34. return true;
  35. }
  36. }