/** * Creates a new Pregunta model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Pregunta(); $modelRespuestaExamen = [new RespuestaExamen()]; $model->load(Yii::$app->request->post()); $modelRespuestaExamen = DynamicFormModel::createMultiple(RespuestaExamen::className()); DynamicFormModel::loadMultiple($modelRespuestaExamen, Yii::$app->request->post()); $valid = $model->validate() && DynamicFormModel::validateMultiple($modelRespuestaExamen); if ($valid) { $this->negocio->savePregunta1($model, $modelRespuestaExamen); $dataProvider = new ActiveDataProvider(['query' => RespuestaExamen::find()->where(['id_pregunta' => $model->id])->orderBy('id')]); return $this->redirect(['view', 'id' => $model->id, 'dataProvider' => $dataProvider]); } else { return $this->render('create', ['model' => $model, 'modelRespuestaExamen' => empty($modelsRespuestaExamen) ? [new RespuestaExamen()] : $modelsRespuestaExamen]); } }
public function savePregunta(&$model, $modelRespuestaExamen) { $model->file = UploadedFile::getInstance($model, 'file'); $this->getImagePregunta($model); // validate all models $modelRespuestaExamen = DynamicFormModel::createMultiple(RespuestaExamen::className()); DynamicFormModel::loadMultiple($modelRespuestaExamen, Yii::$app->request->post()); $valid = $model->validate() && DynamicFormModel::validateMultiple($modelRespuestaExamen); if ($valid) { $transaction = Yii::$app->db->beginTransaction(); $model->eliminado = 0; $flag = $model->save(false); if ($model->imagen != 'uploads/null.png') { $model->file->saveAs($model->imagen); } try { if ($flag) { foreach ($modelRespuestaExamen as $i => $modelRespuestaExamen) { //cargamos la imagen subida $modelRespuestaExamen->imgfile = UploadedFile::getInstance($modelRespuestaExamen, "[{$i}]imgfile"); //verificamos si es nula $this->getImageRespuesta($modelRespuestaExamen); //cargamos la direccion de la imagen //$modelRespuestaExamen->imagen='uploads/'.$imageName; $modelRespuestaExamen->eliminado = 0; if (!($modelRespuestaExamen->validate() && $modelRespuestaExamen->save())) { $transaction->rollBack(); return false; } $modelRespuestaExamen->link('idPregunta', $model); if ($modelRespuestaExamen->imagen != 'uploads/null.png') { $modelRespuestaExamen->imgfile->saveAs($modelRespuestaExamen->imagen); } } $transaction->commit(); } } catch (Exception $e) { print_r($e); $transaction->rollBack(); return false; } } else { return false; } return true; }
/** * @return \yii\db\ActiveQuery */ public function getRespuestaExamens() { return $this->hasMany(RespuestaExamen::className(), ['id_pregunta' => 'id']); }
/** * @return \yii\db\ActiveQuery */ public function getIdRespuesta() { return $this->hasOne(RespuestaExamen::className(), ['id' => 'id_respuesta']); }