分頁

在 Laravel 中要實作分頁只要兩行!!

設定分頁

在迷你部落格範例中,HomeController@index 裡會取得全部文章:

$posts = Post::all();

假如我們想要一頁只顯示 3 筆,可以改成:

$posts = Post::paginate(3);

完成。如果有使用 where 條件的話,paginate() 方法就加在最後面,例如:

$posts = Post::where('words', '>', 100)->paginate(3);

如果只想顯示上下頁而不要顯示頁數:

$posts = Post::simplePaginate(3);

顯示分頁

在做了以上的指定後,前端的頁面會自動以 3 筆為一頁的方式顯示,但這時我們並看不到頁數,或上下頁的連結。現在我們讓頁數顯示在文章清單下方,到 View 中加入:

  1. @foreach ($posts as $post) //略... @endforeach

{{ $posts->links() }}

$posts->links() 這行會顯示分頁連結,而且都自動幫你計算好頁數了,只是樣式可能有點簡陋。

預設分頁型式

如果你要讓整個網站使用預設的分頁顯示方式(頁數、上下頁),可以在 app/config/view.php 裡面修改 pagination 的型式,使用頁數:

pagination::slider

使用上、下頁:

pagination::simple

自訂分頁頁面

你可以設計一個 View 來顯示分頁,假設是 app/views/site/pagination.blade.php,然後就能使用它:

{{ $posts->links('site.pagination') }}

有些額外的分頁資料可以使用:

  • getCurrentPage

  • getLastPage

  • getPerPage

  • getTotal

  • getFrom

  • getTo

  • count

Last updated