コード例 #1
0
 /**
  * 单项训练
  * @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]);
 }