| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- namespace App\Module\Pet\Validation;
- use App\Module\Pet\Validators\PetFoodValidator;
- use App\Module\Pet\Validators\PetExistsValidator;
- use App\Module\Pet\Validators\PetStatusValidator;
- use App\Module\Pet\Enums\PetStatus;
- use UCore\ValidationCore;
- /**
- * 宠物喂食验证类
- *
- * 用于验证宠物喂食请求的参数
- */
- class PetEatValidation extends ValidationCore
- {
- /**
- * 宠物ID
- *
- * @var int
- */
- public $pet_id;
- /**
- * 物品ID
- *
- * @var int
- */
- public $item_id;
- /**
- * 数量
- *
- * @var int
- */
- public $num;
- /**
- * 用户ID
- *
- * @var int
- */
- public $user_id;
- /**
- * 验证规则
- *
- * @param array $rules 自定义规则
- * @return array
- */
- public function rules($rules = []): array
- {
- return [
- [
- 'pet_id,item_id,num,user_id', 'required'
- ],
- [
- 'pet_id,item_id,num', 'integer', 'min' => 1,
- 'msg' => '{attr}必须是大于0的整数'
- ],
- // 验证宠物是否存在
- [
- 'pet_id', new PetExistsValidator($this),
- 'msg' => '宠物不存在或不属于当前用户'
- ],
- // 验证宠物状态是否正常
- [
- 'pet_id', new PetStatusValidator($this, [PetStatus::NORMAL]),
- 'msg' => '宠物状态不允许喂食'
- ],
- // 验证物品是否为宠物口粮
- [
- 'item_id', new PetFoodValidator($this),
- 'msg' => '该物品不是宠物口粮'
- ]
- ];
- }
- /**
- * 设置默认值
- *
- * @return array
- */
- public function default(): array
- {
- return [
- 'num' => 1
- ];
- }
- }
|