SkinValidation.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Module\Game\Validation;
  3. use App\Module\Game\Validator\SkinIdValidator;
  4. use App\Module\Game\Validator\UserHasSkinValidator;
  5. use UCore\ValidationCore;
  6. /**
  7. * 皮肤验证类
  8. *
  9. * 用于验证皮肤切换操作的输入数据,包括用户ID和皮肤ID
  10. */
  11. class SkinValidation extends ValidationCore
  12. {
  13. /**
  14. * 验证规则
  15. *
  16. * @param array $rules 自定义规则
  17. * @return array
  18. */
  19. public function rules($rules = []): array
  20. {
  21. return [
  22. [
  23. 'user_id,skin_id', 'required'
  24. ],
  25. [
  26. 'user_id,skin_id', 'integer', 'min' => 1,
  27. 'msg' => '{attr}必须是大于0的整数'
  28. ],
  29. // 验证皮肤ID是否有效
  30. [
  31. 'skin_id', new SkinIdValidator($this),
  32. 'msg' => '皮肤ID无效'
  33. ],
  34. // 验证用户是否拥有该皮肤
  35. [
  36. 'skin_id', new UserHasSkinValidator($this, ['user_id']),
  37. 'msg' => '用户未拥有该皮肤'
  38. ]
  39. ];
  40. }
  41. /**
  42. * 设置默认值
  43. *
  44. * @return array
  45. */
  46. public function default(): array
  47. {
  48. return [];
  49. }
  50. }