CommonValidate.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace app\validate;
  3. use think\facade\Request;
  4. use think\Validate;
  5. class CommonValidate extends Validate
  6. {
  7. protected $request;
  8. public function __construct(Request $request)
  9. {
  10. $this->request = $request;
  11. parent::__construct();
  12. }
  13. // 自定义验证规则:验证是否为有效的JSON格式
  14. protected function isJson($value): bool
  15. {
  16. json_decode($value);
  17. return (json_last_error() == JSON_ERROR_NONE);
  18. }
  19. /**
  20. * 通用验证方法
  21. * 使用父类验证规则进行数据验证
  22. *
  23. * @param array $data 要验证的数据
  24. * @param string|null $entityClass 数据实体类名,如果不传则返回原始数据
  25. * @return array
  26. */
  27. public function validate(array $data, ?string $entityClass = null): array
  28. {
  29. if (!$this->check($data)) {
  30. return [
  31. 'status' => 'error',
  32. 'message' => $this->getError()
  33. ];
  34. }
  35. $resultData = $data;
  36. if ($entityClass && class_exists($entityClass)) {
  37. $resultData = $entityClass::newInstance($data);
  38. }
  39. return [
  40. 'status' => 'success',
  41. 'data' => $resultData
  42. ];
  43. }
  44. }