public function saveQuizQuestions($questions, $quiz_id) { $questionAnswers = new QuestionsAnswers(); for ($i = 0; $i < count($questions); $i++) { $quizQuestion = new QuizQuestions(); $quizQuestion->name = $questions[$i]['name']; $quizQuestion->quiz_id = $quiz_id; if (!$quizQuestion->save()) { return false; } else { if (!$questionAnswers->saveQuestionAnswers($quizQuestion->id, $questions[$i]['answers'])) { return false; } } } return true; }
/** * Updates an existing Quiz model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $quizQuestions = QuizQuestions::find()->where(['quiz_id' => $id])->with('quizAnswers')->all(); $quizResults = QuizResults::findAll(['quiz_id' => $id]); if ($model->load(Yii::$app->request->post()) && $model->save()) { foreach ($quizQuestions as $question) { QuestionsAnswers::deleteAll(['question_id' => $question['id']]); } QuizResults::deleteAll(['quiz_id' => $id]); QuizQuestions::deleteAll(['quiz_id' => $id]); $newQuizQuestion = new QuizQuestions(); $newQuizResults = new QuizResults(); if ($newQuizQuestion->saveQuizQuestions(Yii::$app->request->post('question'), $model['id'])) { if ($newQuizResults->saveQuizResults($model['id'], Yii::$app->request->post('results'))) { return $this->redirect(['view', 'id' => $model->id]); } } //return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('update', ['model' => $model, 'quizQuestions' => $quizQuestions, 'quizResults' => $quizResults]); } }