/** * 单项训练 * @param $type * @return string */ public function actionSingle($type) { $session = Yii::$app->session; $user = $session->get('user'); $testTypeId = 0; $testTitle = "单项练习-"; switch ($type) { case 'danxuan': $testTypeId = 1; $testTitle .= "单选题"; break; case 'duoxuan': $testTypeId = 2; $testTitle .= "多选题"; break; case 'panduan': $testTypeId = 3; $testTitle .= "判断题"; break; case 'anli': $testTypeId = 4; $testTitle .= "案例计算题"; break; default: break; } $currentNumber = TestLibrary::findCurrentNumber($user, $testTypeId); $testLibraries = TestLibrary::findAllByUserAndTestType($user, $testTypeId); if ($currentNumber >= count($testLibraries)) { //当前题号达到最大题号,重新从头开始 $currentNumber = 0; } //测试图片 //$testLibraries = TestLibrary::find()->where('pictureBig is not null')->orWhere('pictureSmall is not null')->all(); $countNumber = count($testLibraries); if ($countNumber == 0) { //避免没有题目生成出题页面出错 $url = Url::to(['site/test-library-not-found']); header("Location:{$url}"); exit; } $majorJob = MajorJob::findNameByMajorJobId($user['majorJobId']); //将一些必要参数存入session,方便后续页面调用 $session->set('testLibraries', $testLibraries); //所有题目 $session->set('totalNumber', $countNumber); //总题数 $session->set('testTypeId', $testTypeId); //测试类型id $session->set('testTitle', $testTitle); //测试标题 $session->set('majorJob', $majorJob); //测试岗位 //取出特定的题目量,$testLibraries为引用 $startNumber = TestLibrary::takeOutSpecialNumber($currentNumber, $testLibraries); return $this->render('test', ['testLibraries' => $testLibraries, 'startNumber' => $startNumber, 'currentNumber' => $currentNumber]); }