protected function validate(Validator $v) { $v->whenSet(function (Validator $v) { $v->notInt('Value has to be a number')->when($this->isSigned(), function (Validator $v) { $v->outOf(static::MIN, static::MAX, sprintf('Value has to be between %d and %d', static::MIN, static::MAX)); })->otherwise(function (Validator $v) { $v->outOf(static::UNSIGNED_MIN, static::UNSIGNED_MAX, sprintf('Value has to be between %d and %d', static::UNSIGNED_MIN, static::UNSIGNED_MAX)); }); }); return parent::validate($v); }