public function actionUpdateEvaContext($id) { Yii::log("actionUpdateEvaContext called", "trace", self::LOG_CAT); $this->setPageTitle('Update Evaluation Context'); if (isset($_POST['pageId'])) { SystemController::savePage($this->createUrl('updateEvaContext', ['id' => $id])); } $evaluationHeader = EvaluationHeader::model()->with('evalDetails')->find('t.evalId=:evaId', [':evaId' => $id]); //$this->frameworkId = Yii::app()->session['surDesign']['id']; $dataArray = []; $dataArray['formType'] = 'Update'; $model = new EvalForm(); //print_r(FrameworkContext::model()->getFrameworkSummary($this->frameworkId)); die; $returnArray = self::getElementsAndDynamicAttributes(); $elements = $returnArray['elements']; $model->setRules($returnArray['rules']); $model->setProperties($returnArray['dynamicDataAttributes']); $model->setAttributeLabels($returnArray['labels']); //print_r($model->attributes); die; foreach ($model->attributes as $attributeName => $attributeVal) { $attributeNameAndId = explode('_', $attributeName); foreach ($evaluationHeader->evalDetails as $evaluationData) { if (isset($attributeNameAndId[1]) && $attributeNameAndId[1] == $evaluationData->evalElementsId) { $model->setPropertyName($attributeName, $evaluationData->value); if (DForm::isJson($evaluationData->value)) { $model->setPropertyName($attributeName, json_decode($evaluationData->value)); } break; } } } $elements['buttons'] = ['updateEvaluation' => ['label' => 'Update evaluation context', 'type' => 'submit']]; // generate the elements form $form = new CForm($elements); $form['evaluationHeader']->model = $evaluationHeader; $form['evaContext']->model = $model; if ($form->submitted('updateEvaluation')) { //die('opop'); $evaluationHeader = $form['evaluationHeader']->model; $evaluationHeader->frameworkId = Yii::app()->session['surDesign']['id']; $evaluationHeader->userId = Yii::app()->user->id; $model->setProperties($_POST['EvalForm']); //var_dump($model); die; //save the componentHead values if ($evaluationHeader->save() && $model->save($evaluationHeader->evalId, false)) { // if (isset(Yii::app()->session['evaContext'])) { Yii::app()->session->add('evaContext', ['id' => $evaluationHeader->evalId, 'name' => $evaluationHeader->evaluationName, 'questionId' => $evaluationHeader->questionId]); } Yii::app()->user->setFlash('success', Yii::t("translation", "Evaluation protocol updated successfully")); $this->redirect(['listEvaContext']); return; } Yii::app()->user->setFlash('error', Yii::t("translation", "An error occurred when updating the " . "evaluation context, please try again or contact your administrator if the problem persists")); } $this->docName = 'addEvaContext'; $page = SystemController::getPageContent($this->docName); $this->render('context', ['model' => $model, 'dataArray' => $dataArray, 'form' => $form, 'page' => $page]); }