/**
  * @param ActiveRecord $owner
  */
 public function attach($owner)
 {
     parent::attach($owner);
     // Применяем конфигурационные опции
     foreach ($this->imageConfig as $key => $value) {
         $var = '_' . $key;
         $this->{$var} = $value;
     }
     // Вычисляем корень сайта
     if (empty($this->_rootPathAlias)) {
         $savePathParts = explode('/', $this->_savePathAlias);
         // Удаляем последнюю часть
         unset($savePathParts[count($savePathParts - 1)]);
         // Объединяем все части обратно
         $this->_rootPathAlias = implode('/', $savePathParts);
     }
     // Добавляем валидатор require
     if ($this->_imageRequire) {
         $owner->validators->append(Validator::createValidator(RequiredValidator::className(), $owner, $this->_imageAttribute));
     }
     // Подключаем валидатор изображения
     $validatorParams = array_merge(['extensions' => $this->_fileTypes, 'maxSize' => $this->_maxFileSize, 'skipOnEmpty' => true, 'tooBig' => 'Изображение слишком велико, максимальный размер: ' . floor($this->_maxFileSize / 1024 / 1024) . ' Мб'], $this->_imageValidatorParams);
     $validator = Validator::createValidator(ImageValidator::className(), $owner, $this->_imageAttribute, $validatorParams);
     $owner->validators->append($validator);
 }
Пример #2
0
 /**
  * @inheritdoc
  */
 protected function defaultValidators()
 {
     return [ImageValidator::className()];
 }
 /**
  * @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);
 }