分頁
設置
在其它的框架中,實做分頁是令人痛苦的事,Laravel 卻讓分頁變得非常的簡單,在 app/config/view.php
設定檔中只有一個 pagination
選項需要設定,選項必須指定要用哪一種視圖 (view) 來建立分頁連結, Laravel 預設有兩種可以顯示的視圖。
pagination::slider
視圖將會聰明的產生以目前頁數為主的範圍頁數連結,而 pagination::simple
視圖則僅僅是產生 "上一頁" 與 "下一頁" 按鈕,而兩種視圖都能支援 Twitter Bootstrap 框架
使用
Laravel 有樹種方法去產生分頁項目,簡單的是在 "Query產生器" 或 "Eloquent 模型" 中使用 paginate
方法
分頁資料庫查詢結果
$users = DB::table('users')->paginate(15);
你也可以在 Eloquent ORM 模型做分頁查詢:
分頁 Eloquent 模型查詢結果
$users = User::where('votes', '>', 100)->paginate(15);
傳送給 paginate
方法的參數是你希望每頁要顯示的項目選項數目,只要你取得查詢結果後,你可以在視圖中顯示,並使用 links
方法去建立分頁連結:
<div class="container">
<?php foreach ($users as $user): ?>
<?php echo $user->name; ?>
<?php endforeach; ?>
</div>
<?php echo $users->links(); ?>
這就是所有產生分頁系統的步驟了! 你會注意到我們還沒有告知 Laravel 我們目前的頁面是哪一頁,這個資訊 Laravel 會自動幫你做好。
你也可以透過下列的方法去取得分頁的資訊:
getCurrentPage
getLastPage
getPerPage
getTotal
getFrom
getTo
有時候你可能會想要自己手動建立分頁,只需要用 Paginator::make
方法即可手動建立分頁。
Creating A Paginator Manually
$paginator = Paginator::make($items, $totalItems, $perPage);
加入分頁連結
你可以使用 appends
方法加入查詢字串到分頁連結中:
<?php echo $users->appends(array('sort' => 'votes'))->links(); ?>
這樣會產生像是下列的連結結果:
http://example.com/something?page=2&sort=votes