2016-10-22 59 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'。 –