私は、明確でページ付けされた流暢なリクエストを行います。私の問題は、disinct リクエストの前にページネーション リクエストが実行されることです。
私の流暢な要求:
$candidates = DB::table('candidates')
->select('candidates.*')
->distinct()
->join('candidate_region', 'candidates.id', '=', 'candidate_region.candidate_id')
->join('candidate_job', 'candidates.id', '=', 'candidate_job.candidate_id')
->whereIn('candidate_region.region_id', $inputs['region'])
->whereIn('candidate_job.job_id', $inputs['job'])
->where('imavailable', '1')
->where('dateDisponible', '<=', $inputs['availableDate'])
->paginate(15);
DB::getQueryLog() でリクエストをテストします
$query = DB::getQueryLog($candidates);
$query は、make number page のページネーション リクエスト (カウント付き) を示します。
5 =>
array (size=3)
'query' => string 'select count(*) as aggregate from `candidates` inner join `candidate_region` on `candidates`.`id` = `candidate_region`.`candidate_id` inner join `candidate_job` on `candidates`.`id` = `candidate_job`.`candidate_id` where `candidate_region`.`region_id` in (?, ?, ?, ?, ?) and `candidate_job`.`job_id` in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) and `imavailable` = ? and `dateDisponible` <= ?' (length=396)
そして、distinct を使用した私のリクエストは、 paginate の後に実行されます。
6 =>
array (size=3)
'query' => string 'select distinct `candidates`.* from `candidates` inner join `candidate_region` on `candidates`.`id` = `candidate_region`.`candidate_id` inner join `candidate_job` on `candidates`.`id` = `candidate_job`.`candidate_id` where `candidate_region`.`region_id` in (?, ?, ?, ?, ?) and `candidate_job`.`job_id` in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) and `imavailable` = ? and `dateDisponible` <= ? limit 15 offset 15' (length=417)
ページネーションの前に別のリクエストを実行するにはどうすればよいですか?
ありがとう