我正在Laravel 5.5中开发一个应用程序......它是一种测试系统......
我想要实现的是当用户点击RUN TEST时,它会产生一组随机的问题(让我们说5)然后我希望它们一个接一个地提供给用户......我在AJAX中进行了分页,因此可以通过页面提供问题..之后用户将点击将提交表单的提交。
我可以随机获取问题列表
在方法" exec_test"中的TestController中是
// get random id
$q_id = Question::select('id')
->where('test_id','=',$test_id)
//->where('id','=',114)
->orderByRaw("RAND()")
->take(3)
->get();
这将为该特定测试获得3个随机ID ...
以下代码采用相同的方法
// get data
$data = array (
'tests' => Test::select('id','code','name',DB::raw('duration_m * 60 as duration_m'),'questions','passing_score')
->where('id','=',$test_id)
->orderBy('code', 'asc')
->paginate($this->page_limit),
'test_questions' => Question::select('questions.id','questions.question_header','questions.question_detail_local_url')
->join('tests','tests.id','=','questions.test_id')
->where('test_id','=',$test_id)
->whereIn('questions.id',$q_id)
//->orderByRaw("RAND()")
//->take(4)
->paginate($this->test_question_page_limit),
'test_answers' => Answer::select('id','answer_text_cleaned')
->whereIn('question_id',$q_id)
->get()
);
// check for ajax requests
if ($request->ajax()) {
return view('/custom/test/run_test_quests', $data)->render();
}
return view('/custom/test/run_test_info',$data);
但我不知道如何将第一个查询静态化,并将其逐个(每页)提供给用户..所以他可以通过所有问题
你有什么建议吗?
答案 0 :(得分:0)
虽然将第一页分页为1,但也会在网址中指定。
试试这个:
if($request->input('page') ==1)
{
//code for first page
}else{
//code for random
}
这只是一个建议。对不起,如果我理解错误的问题