2016-10-22 123 views
0

如何获得分页结果中查询结果的总数。laravel分页与DB :: select

ex:$result=DB::select("select * from table"); 
$pagination = new Paginator($result, $resultsPerPage, $currentPage); 

上面的一个给我resultsperpage和当前页面,但如何计算总数。

第四个参数要求作为数组类型我试过但它不工作。 我需要这样的结果。

{ 
     "total": 32, 
     "per_page": 4, 
     "current_page": 1, 
     "last_page": 8, 
     "next_page_url": "http://192.168.0.117/projects/videoSharingApp/VSA/public/me/videos?page=2", 
     "prev_page_url": null, 
     "from": 1, 
     "to": 4, 
    } 
+0

您是使用刀片文件中的结果还是使用'JSON'响应返回结果?你能显示你的控制器的代码吗? –

+0

上面的一个是从JSON响应,如果我使用这个$ pagination =新的Paginator($结果,$ resultsPerPage,$ currentPage);我在json结果中得到了没有“total”的上述结果。我只需要在我的json列表中完成。 – srivat1

回答

0

首先,你需要编写与Laravel原始查询,你可以这样做:

DB::table('table')->get(); 

其次,你不需要手动创建分页实例,你可以这样做:

$pagination = DB::table('table')->paginate(); 

最后,以获取分页的总数,你只需要做:

$pagination->total(); 

欲了解更多信息:https://laravel.com/docs/5.3/pagination#paginator-instance-methods

希望这有助于!

+0

嗨,我同意你的答案,但我需要分页与这一个 – srivat1

+0

查询是有点复杂,所以我想用这个正常的方法尝试示例查询:$结果=数据库::选择(“select * from table”); – srivat1

+0

@ srivat1你是什么意思“我需要单独分页”。你没有得到总数的原因是因为你没有使用'LengthAwarePaginator'。另外,如果你的查询比较复杂,你应该把它放在你的例子中,而不是一个简单的'select * from table'。 –