public function actionSave($id = null) { if (!empty($id)) { $vendor = Vendor::findOne($id); } else { $vendor = new Vendor(); } $vendor_image = new VendorImage(); if (Yii::$app->getRequest()->isPost) { $vendor->load(Yii::$app->request->post()); $vendor_image->imageFile = UploadedFile::getInstance($vendor_image, 'imageFile'); if ($vendor->validate() && $vendor_image->validate()) { if ($vendor_image->notEmpty()) { try { $vendor_image->Upload(); $vendor->image_name = $vendor_image->getImageName(); } catch (Exception $ex) { $vendor->addError('image_file', Yii::t('shop', 'Failed to save image')); } } $vendor->save(); Yii::$app->getSession()->setFlash('success', Yii::t('shop', 'All changes have been saved')); return $this->redirect(Url::toRoute('/shop/vendor')); } else { Yii::$app->getSession()->setFlash('danger', Yii::t('shop', 'Failed to save changes')); } } return $this->render('save', ['vendor' => $vendor, 'vendor_image' => $vendor_image]); }