回到最上方

文件

分頁

設置

在其它的框架中,實做分頁是令人痛苦的事,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

討論