# 15. 分頁
接著 [上一篇](https://www.rails365.net/articles/ruby-cheng-xu-yuan-xue-xi-laravel-kuang-jia-bi-ji-14-blade) 文章的內容,我們現在來對這些顯示出來的所有用戶記錄進行分頁,最終效果會是下面這樣:

## 1. 分頁效果
我們來一步步地完成這些效果,首先第一步是分頁效果。
Laravel 框架就自帶了分頁的功能。
很簡單,只需要改兩個地方,一個是調用數據的地方,即 controller,還有一個就是要把分頁效果改出來,那就是在 view 上改。
先找到 `app/Http/Controllers/UsersController.php` 這個 controller 文件,把它修改如下:
```
// app/Http/Controllers/UsersController.php
<?php
...
class UsersController extends Controller
{
public function index()
{
$users = User::paginate(5);
return view('admin.users.index', compact('users'));
}
...
}
```
請注意,`index` 方法中 `User::all()` 被我改成了 `User::paginate(5)`。
這個表示將會對 `User` 這個 model 使用分頁功能,并且按每 5 條數據作為一頁。
現在還不夠,我們需要把分頁效果顯示出來。
找到 `resources/views/admin/users/index.blade.php` 這個 view 文件,修改內容如下:
```
<!-- resources/views/admin/users/index.blade.php -->
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col-md-6 col-md-offset-3">
<ul class='list-group'>
@foreach($users as $user)
...
@endforeach
</ul>
{{ $users->links() }}
</div>
</div>
@endsection
```
`{{ $users->links() }}` 就是顯示分頁。
## 2. 所有記錄的總數量
這個很簡單,使用 `total()` 這個方法即可,例如:
```
<h3>{{ $users->total() }} total users</h3>
```
## 3. 當前頁面的用戶記錄數量
這個可以使用 `count()` 方法,比如:
```
<b>In this page {{ $users->count() }} users</b>
```
- - - - - -
最終把所有的 view 相關的代碼組成起來,就是下面這樣:
```
<!-- resources/views/admin/users/index.blade.php -->
@extends('layouts.app')
@section('content')
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h3>{{ $users->total() }} total users</h3>
<b>In this page {{ $users->count() }} users</b>
<ul class='list-group'>
@foreach($users as $user)
<li class='list-group-item' style="margin-top: 20px;">
<span>{{ $user->name }}</span>
<span class="pull-right clearfix">
Joined ({{ $user->created_at->diffForHumans() }})
</span>
<button class='btn btn-xs btn-primary'>Follow</button>
</li>
@endforeach
</ul>
{{ $users->links() }}
</div>
</div>
@endsection
```
這樣就有上面的那個圖的效果了。
完結。
- 0. 介紹
- 1. php 開發環境安裝
- 2. 跑 laravel 的 hello world
- 3. 第一個路由 UsersController
- 4. 在數據庫中創建一條數據
- 5. 簡單的用戶認證
- 6. 修改 User model
- 7. User model 的 getter 方法
- 8. view 的更多知識
- 9. 在 view 中共享變量
- 10. blade layout
- 11. 使用 @include 來整理 view
- 12. Blade if/else/unless/or
- 13. factories, faker and seeding
- 14. Blade foreach
- 15. 分頁
- 16. 用中間件來限制用戶必須登錄
- 17. Route group
- 18. CURD 實踐之改變用戶表結構
- 19. CURD 實踐之為新添加的屬性修改注冊功能
- 20. CURD 實踐之用 username 來代替 email 登錄
- 21. CURD 個人中心頁面
- VIM 的 laravel 插件
- VIM 中有效地查看 php 源碼