protected function beforeValidate() { if (empty($this->instanceId) && empty($this->tmpId)) { $this->addError('instanceId', 'Не указан instanceId.'); } $file = CUploadedFile::getInstance($this, 'file'); if ($file) { foreach (self::$deniedExtensions as $ext) { if (strpos($file->getName(), '.' . $ext) !== false) { $this->addError('file', 'Файл имеет запрещенное расширение.'); return false; } } } $objectParameter = $this->getObjectParameter(); //если есть ограничение по типу файлов, то нужно добавить в валидатор if ($objectParameter && ($addParam = $objectParameter->getAdditionalParameter())) { $types = FileExtension::getExtensionsByType($addParam); $validators = $this->getValidators('file'); if (isset($validators[0]) && $validators[0] instanceof CFileValidator) { $validators[0]->types = $types; } } return parent::beforeValidate(); }