Laravel / Eloquent Paginate返回太多页面而且有些空洞

时间:2015-06-05 16:11:40

标签: php laravel eloquent

我有以下查询:

count()

它返回400多页,很多页面都是空的。网上没有任何问题。任何线索?

修改

DD(DB :: getQueryLog());吐出以下SQL:

return Calls::select(DB::raw("ph_n.`desc`, ph_s.StageName, Calls.PatID, Calls.CallTime, Calls.ApptDate, Calls.Name, ph.Response, Calls.Physician, r.StatusDesc, ph_s.DaysToNextStage, ph_e.ph_eventid, ph_e.EventName"))
        ->join('PopHealth as ph', function($join){
            $join->on('Calls.PatID', '=', 'ph.PatID');
            $join->on('Calls.Login', '=', 'ph.Login');
        })
        ->join('Response as r', 'ph.Response', '=', 'r.RespID')
        ->join('PopHealth_stages as ph_s', 'ph.ph_eventid', '=', 'ph_s.ph_eventid')
        ->join('PopHealth_events as ph_e', 'ph.Login', '=', 'ph_e.Login')
        ->join('PopHealth_notify as ph_n', function($join){
            $join->on('r.status', '<=', 'ph_n.RangeUpper');
            $join->on('r.status', '>=', 'ph_n.RangeLower');
        })
        ->where('Calls.Login', 'demo')
        ->distinct()->take(100)
        ->paginate(10);

SQL限制了结果。

1 个答案:

答案 0 :(得分:0)

你有没有解决这个问题?

我面临同样的问题,我发现罪魁祸首是当laravel的paginate查询DB以查找元素的总数时,不考虑distinct,因此项目的总数要大得多。 / p>

这里有一个答案:Laravel 4 - paginate ignore distinct in Fluent

简而言之,你必须自己进行分页。