我正在 Laravel 5.5 中开发一个应用程序......它是一种测试系统......
我想要实现的是,当用户点击 RUN TEST 时,它会生成随机的一组问题(比如说 5 个),然后我希望将它们一个一个地提供给用户......我做了一个分页AJAX,这样问题就可以通过页面来处理了..然后用户将点击 SUBMIT 提交表单..
我能够得到随机的问题列表
在 TestController 内的方法“exec_test”是
// 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);
但我不知道如何让第一个查询成为静态的,并让它一个一个地(每页)提供给用户......这样他就可以解决所有问题
请问您有什么建议吗?
最佳答案
分页时第一页为 1,也会在 url 中指定。
试试这个:
if($request->input('page') ==1)
{
//code for first page
}else{
//code for random
}
这只是一个建议。对不起,如果我理解错了问题
关于php - Laravel 获取随机数的静态数组并将其用于分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47477630/