Laravel 4 - 在 Fluent 中分页忽略不同 [英] Laravel 4 - paginate ignore distinct in Fluent

查看:20
本文介绍了Laravel 4 - 在 Fluent 中分页忽略不同的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用不同的和分页的方式提出流畅的请求.我的问题是在取消请求之前执行分页请求

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 显示 make number page 的分页请求(带计数):

$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)

我对 distinct 的请求是在分页后执行的:

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')->...东西...->get()->paginate(15)

真正的答案:手动创建分页器:

Real answer: Create your paginator manually:

$candidates = DB::table('candidates')->...stuff...->get();

$paginator = Paginator::make($candidates, count($candidates), 15);

这篇关于Laravel 4 - 在 Fluent 中分页忽略不同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆