/** * Returns default context's validators configuration. This method may be * overrided in subclasses. * @return array default config for [[getValidators()]]. * This value will be used in [[getValidators()]] if 'validators' property was not set. */ protected function defaultValidators() { return [FileValidator::className()]; }
/** * @param $attribute * @return array|null|object|Validator */ private function getValidator($attribute) { if (!($validator = @$this->attributes[$attribute]['validate'])) { return null; } if ($validator instanceof Validator) { return $validator; } if (is_array($validator)) { isset($validator['class']) or $validator['class'] = FileValidator::className(); $validator['attributes'] = $attribute; return $this->attributes[$attribute]['validate'] = Yii::createObject($validator); } if (is_string($validator)) { return $this->attributes[$attribute]['validate'] = Validator::createValidator($validator, $this->owner, $attribute); } }
/** * @throws \yii\base\InvalidConfigException */ protected function addValidator() { unset($this->validator['maxFiles']); /* @var $validator \yii\validators\FileValidator|\yii\validators\ImageValidator */ $validator = \Yii::createObject(array_merge(['class' => $this->image ? \yii\validators\ImageValidator::className() : \yii\validators\FileValidator::className(), 'attributes' => [$this->attribute]], $this->validator)); $this->owner->getValidators()->offsetSet($this->getValidatorIndex(), $validator); }