public function actionIndex() { $session = Yii::$app->session; $user = $session->get('user'); $examTemplates = ExamTemplate::findByMajorJobAndProvince($user['majorJobId'], $user['provinceId']); $totalNumber = count($examTemplates); if ($totalNumber == 0) { $url = Url::to(['site/test-library-not-found']); header("Location:{$url}"); exit; } $rand = rand(1, $totalNumber); $examTemplate = $examTemplates[$rand - 1]; $session->set('examTemplate', $examTemplate); //存入session,在考试结束后计算分数要用到 $examTemplateDetails = ExamTemplateDetail::findByExamTemplate($examTemplate['examTemplateId']); $examTemplateDetails = ExamTemplateDetail::remakeArray($examTemplateDetails); $testLibraries = TestLibrary::findByTemplateDetails($examTemplateDetails, $user); $majorJob = MajorJob::findNameByMajorJobId($user['majorJobId']); //将一些必要参数存入session,方便后续页面调用 $session->set('testLibraries', $testLibraries); //所有同类型题目 $session->set('totalNumber', count($testLibraries)); //总题数 $session->set('testTitle', "模拟考试"); //测试标题 $session->set('majorJob', $majorJob); //测试岗位 return $this->render('index', ['testLibraries' => $testLibraries]); }
public function actionChangeState() { $request = Yii::$app->request; if ($request->isAjax) { $newState = $request->post('newState'); $examTemplateId = intval($request->post('id')); if ($newState == 'open') { $newState = ExamTemplate::STATE_ABLE; ExamTemplate::updateState($examTemplateId, $newState); return 'open'; } elseif ($newState == 'close') { $newState = ExamTemplate::STATE_DISABLE; ExamTemplate::updateState($examTemplateId, $newState); return 'close'; } else { return '状态非法'; } } else { throw new Exception('非ajax提交'); } }
public static function updateState($examTemplateId, $newState) { $examTemplate = ExamTemplate::findOne($examTemplateId); if (!$examTemplate) { throw new Exception("ExamTemplate id not exist"); } $examTemplate->state = $newState; if (!$examTemplate->update()) { throw new Exception("ExamTemplate update error"); } }