public function actionUpdate($id) { $modelClassified = Classified::findOne($id); $modelImage = ClassifiedImage::find()->where(['classified_id' => $id])->all(); //$modelImage = $modelClassified->id; if ($modelClassified->load(Yii::$app->request->post())) { $oldIDs = \yii\helpers\ArrayHelper::map($modelImage, 'id', 'classified_id'); print_r($oldIDs); $modelImage = \common\models\Model::createMultiple(ClassifiedImage::classname(), $modelImage); \common\models\Model::loadMultiple($modelImage, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(\yii\helpers\ArrayHelper::map($modelImage, 'id', 'classified_id'))); // ajax validation if (Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return \yii\helpers\ArrayHelper::merge(\yii\widgets\ActiveForm::validateMultiple($modelImage), \yii\widgets\ActiveForm::validate($modelClassified)); } // validate all models $valid = $modelClassified->validate(); $valid = \common\models\Model::validateMultiple($modelImage) && $valid; if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $modelClassified->save(false)) { if (!empty($deletedIDs)) { ClassifiedImage::deleteAll(['id' => $deletedIDs]); } foreach ($modelImage as $i => $modelImage) { $modelImage->classified_id = $modelClassified->id; if (empty($modelImage->imageFile)) { $name = Yii::$app->security->generateRandomString(); $modelImage->imageFile = \yii\web\UploadedFile::getInstance($modelImage, "[{$i}]imageFile"); if ($modelImage->imageFile) { $modelImage->imageFile->saveAs('uploads/' . $name . '.' . $modelImage->imageFile->extension); //Upload files to server ////save path in db column $modelImage->image = 'uploads/' . $name . '.' . $modelImage->imageFile->extension; //$model->fileProfile->saveAs($model->image_profile); } } if (!($flag = $modelImage->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->refresh(); } } catch (Exception $e) { $transaction->rollBack(); } } } return $this->render('update', ['modelClassified' => $modelClassified, 'modelImage' => empty($modelImage) ? [new ClassifiedImage()] : $modelImage]); }