public function checkAndSetAnswers($arr) { $old_answers = $this->answers; $del_answers = array_diff($old_answers, $arr); $add_answers = array_diff($arr, $old_answers); foreach ($del_answers as $answer) { $model = GivenExerciseTestAnswers::find()->where(['given_exercise_id' => $this->id])->andWhere(['exercise_test_id' => $answer])->one(); $model->delete(); } foreach ($add_answers as $answer) { $model2 = new GivenExerciseTestAnswers(); $model2->given_exercise_id = $this->id; $model2->exercise_test_id = $answer; $model2->save(); } }
public function CTask($id) { $gtask = GivenTask::findOne($id); $exercises = ArrayHelper::getColumn($gtask->exercises, 'id'); if (\common\models\GivenExerciseTestAnswers::find()->where(['in', 'given_exercise_id', $exercises]) || !GivenExercise::find()->where(['given_task_id' => $gtask->id])->andWhere(['solution' => ''])->all()) { $gtask->status = 1; $gtask->complete_date = date('U'); $gtask->save(); return false; } return true; }