# 15. 分页
接着 [上一篇](https://www.rails365.net/articles/ruby-cheng-xu-yuan-xue-xi-laravel-kuang-jia-bi-ji-14-blade) 文章的内容,我们现在来对这些显示出来的所有用户记录进行分页,最终效果会是下面这样:
![](https://box.kancloud.cn/66cc822278b88a548f4616fd75da7a48_2038x1140.jpg)
## 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 源码