'beforeUpdate', ActiveRecord::EVENT_BEFORE_INSERT => 'beforeInsert', ]; } public function beforeUpdate($event) { foreach($this->fields as $field){ if ( ($image = UploadedFile::getInstance($this->owner, $field['name'])) ) { $this->owner->image = $image->name; } if(!$this->owner->image){ $this->owner->image = $this->owner->getOldAttribute($field['name']); } if ($image) { $imgDir = \Yii::getAlias('@storage/'.$field['directory'].'/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(\Yii::getAlias('@storage/'.$field['directory'].'/' . $image->name)); } } } public function beforeInsert($event) { foreach($this->fields as $field){ if ( ($image = UploadedFile::getInstance($this->owner, $field['name'])) ) { $this->owner->$field['name'] = $image->name; } if ($image) { $imgDir = \Yii::getAlias('@storage/'.$field['directory'].'/'); if(!is_dir($imgDir)) { mkdir($imgDir, 0755, true); } $image->saveAs(\Yii::getAlias('@storage/'.$field['directory'].'/' . $image->name)); } } } public function getImageFile($image = 'image') { return empty($this->owner->$image) ? null : '/storage/'.$this->fields[0]['directory'].'/'. $this->owner->$image; } public function getImageUrl($image = 'image') { return empty($this->owner->$image) ? null : '/storage/'.$this->fields[0]['directory'].'/'. $this->owner->$image; } }