因此,我创建了一个包含答案选项a,b,c的测验,我想从该选项中获取答案并将其保存到数据库中。如何保存到数据库中,以使第一次测验的答案与第二次测验的答案不同,以便我可以得到答案并调用该答案以在测验的得分函数中进行计算?
我尝试过的方法:
在我的控制器中
public function score($id){
$user_login = Auth::user()->id;
$answers = Answer::select('user_answer')->where('jenis_quiz_id','=',$id)->where('user_id','=',$user_login)->get();//get the answer
unset($a);
unset($b);
unset($c);
$a = 0;
$b = 0;
$c = 0;
if($answers->count()) {
foreach ($answers as $answer) {
switch ($answer->user_answer) {
case 1:
$a++;
break;
case 2:
$b++;
break;
case 3:
$c++;
break;
}
}
return $a+$b+$c;
}
public function getShowResultOfQuiz($id){
$categoryquiz= JenisQuiz::findOrFail($id);
$user= Auth::user()->id;
// $instansi = Auth::user()->instansi;
// $kelas = Auth::user()->kelas;
$score= $this->score($id);
$kelas = Auth::user()->kelas;
$instansi = Auth::user()->instansi;
History::create([
'user_id'=>$user,
'jenis_quiz_id'=>$id,
'score'=> $score,
'kelas' => $kelas,
'instansi' => $instansi
]);
// $time_taken = date("H:i:s", strtotime(Answer::whereJenisQuizId($id)->orderBy('id', 'desc')->first()->time_taken));
switch ($id) {
case '1':
return view('user.pages.quizresult',compact('score','categoryquiz'));
break;
case '2':
return view('user.pages.quizanxietyresult',compact('score','categoryquiz'));
break;
case '3':
return view('user.pages.quizdepresiresult',compact('score','categoryquiz'));
break;
}
}
}
问题:无法将答案与第一次测验和第二次测验区分开 (来自相同的测验形式,但我参加了两次,以及如何区分两者。
我上面的代码结果是从第一次尝试到第二次尝试的得分,如何不添加????