Laravel 4-分页忽略流利的不同 [英] Laravel 4 - paginate ignore distinct in Fluent
本文介绍了Laravel 4-分页忽略流利的不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我流利的要求与分明.我的问题是分页请求是在取消请求之前执行的
I make fluent request with distinct and paginate. My problem is that the paginate request is execute before disinct request
我的流利要求:
$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()测试我的请求
I test my request with DB::getQueryLog()
$query = DB::getQueryLog($candidates);
$ query显示制造编号页的分页请求(带计数):
$query show that paginate request (with count) for 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)
我的请求与众不同是在分页之后执行的:
And my request with distinct is execute after 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)
如何执行分页之前的执行请求?
How to do for execute request distinct before the paginate ?
谢谢
推荐答案
盲目猜测:尝试
DB::table('candidates')->...stuff...->get()->paginate(15)
真实答案:手动创建分页器:
Real answer: Create your paginator manually:
$candidates = DB::table('candidates')->...stuff...->get();
$paginator = Paginator::make($candidates, count($candidates), 15);
这篇关于Laravel 4-分页忽略流利的不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文