php - Laravel 获取随机数的静态数组并将其用于分页

标签 php laravel testing random pagination

我正在 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/

相关文章:

php - 带有两个 WHERE 子句的 MySQL SELECT 语句

php - 使用 PHP 代码和 HTML 表单将 excel (.csv) 导入 MySQL

php - PayPal 不断收到无效的 ipn

postgresql - 如何在 laravel 5.2 中通过迁移继承 postgresql?

php - Laravel 多个 withCount 在同一个关系上

javascript - 可下载的 HTML 测试语料库

php - 如何将 PHP 变量添加到 href url

php - 如何在 mysql (laravel) 中使 varchar 可以为空且唯一

unit-testing - 什么是机器人军队测试?

C#/.NET 如何在单例中测试 protected 方法?