public function validateAttribute($model, $attribute)
{
if ($this->maxFiles != 1) {
$files = $model->{$attribute};
if (!is_array($files)) {
$this->addError($model, $attribute, $this->uploadRequired);
return;
}
foreach ($files as $i => $file) {
if (!$file instanceof UploadedFile || $file->error == UPLOAD_ERR_NO_FILE) {
unset($files[$i]);
}
}
$model->{$attribute} = array_values($files);
if (empty($files)) {
$this->addError($model, $attribute, $this->uploadRequired);
}
if ($this->maxFiles && count($files) > $this->maxFiles) {
$this->addError($model, $attribute, $this->tooMany, ['limit' => $this->maxFiles]);
} else {
foreach ($files as $file) {
$result = $this->validateValue($file);
if (!empty($result)) {
$this->addError($model, $attribute, $result[0], $result[1]);
}
}
}
} else {
$result = $this->validateValue($model->{$attribute});
if (!empty($result)) {
$this->addError($model, $attribute, $result[0], $result[1]);
}
}
}