public function updatePregunta($model) { $modelRespuestaExamen = $model->respuestaExamens; $oldIDs = ArrayHelper::map($modelRespuestaExamen, 'id', 'id'); $modelRespuestaExamen = DynamicFormModel::createMultiple(RespuestaExamen::classname(), $modelRespuestaExamen); DynamicFormModel::loadMultiple($modelRespuestaExamen, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelRespuestaExamen, 'id', 'id'))); if ($model->validate() && DynamicFormModel::validateMultiple($modelRespuestaExamen)) { $transaction = Yii::$app->db->beginTransaction(); try { $model->file = UploadedFile::getInstance($model, 'file'); if ($model->file != NULL) { $this->getImagePregunta($model); } if ($model->save(false)) { if ($model->file != NULL) { $model->file->saveAs($model->imagen); } // if (! empty($deletedIDs)) { // RespuestaExamen::deleteAll(['id' => $deletedIDs]); // } foreach ($modelRespuestaExamen as $i => $modelRespuestaExamen) { $modelRespuestaExamen->imgfile = UploadedFile::getInstance($modelRespuestaExamen, "[{$i}]imgfile"); if ($modelRespuestaExamen->imgfile != NULL) { $this->getImageRespuesta($modelRespuestaExamen); } if (!($flag = $modelRespuestaExamen->save(false))) { $transaction->rollBack(); return false; } $modelRespuestaExamen->link('idPregunta', $model); if ($modelRespuestaExamen->imgfile != NULL) { $modelRespuestaExamen->imgfile->saveAs($modelRespuestaExamen->imagen); } } } $transaction->commit(); return true; } catch (Exception $e) { print_r($e); $transaction->rollBack(); return false; } } else { return false; } }