| 1234567891011121314151617181920212223242526272829303132333435363738 |
- <?php
- namespace App\Module\Game\Validator;
- use App\Module\Game\Services\SkinService;
- use UCore\Validator;
- /**
- * 用户拥有皮肤验证器
- */
- class UserHasSkinValidator extends Validator
- {
- /**
- * 验证用户是否拥有指定皮肤
- *
- * @param mixed $value 要验证的值 (皮肤ID)
- * @param array $data 所有数据 (包含user_id)
- * @return bool
- */
- public function validate(mixed $value, array $data): bool
- {
- // 检查是否有用户ID
- if (!isset($data['user_id'])) {
- return $this->addError('缺少用户ID');
- }
- $userId = $data['user_id'];
- $skinId = $value;
- // 检查用户是否拥有该皮肤
- if (!SkinService::hasSkin($userId, $skinId)) {
- $skinName = SkinService::getSkinName($skinId);
- return $this->addError("您还没有拥有皮肤:{$skinName}");
- }
- return true;
- }
- }
|