10. 分页
控制器部分
public function index()
{
//查询构造器分页
$sites = DB::table('site')->paginate(1);
//Eloquent 模型分页
$sites = Site::paginate(1);
return view('home.index.index', ['sites'=>$sites]);
}
分页可以使用查询构造器或者模型,两者选择其一即可,具体操作方法如上。
视图部分
<div>
@foreach ($sites as $site)
{{ $site->title }}
@endforeach
</div>
{{ $sites->links() }}
通过以上操作,我们就已经实现了一个分页,但是这个分页是Laravel内置的,所需的样式或许并非我们实际需要的,此时我们就可以自定义分页视图。
其实方法很简单,我们仍然借助于artisan命令,具体如下。
php artisan vendor:publish --tag=laravel-pagination
完成以上命令之后,我们会在resources/views发现一个vendor/pagination文件夹,里面有很多分页视图文件,其中default.blade.php是默认的分页视图,我们可以直接修改为我们需要的HTML样式。因为这个是公用的视图文件,一旦定义的样式就是固定的,如果你的项目中需要两种分页形式,这种方法便不再适合,没关系我们可以换种方式。
新建一个模板,暂定为mypagination1.blade.php,把default.blade.php中的内容复制过去,然后修改为我们需要的样式,最后在视图中引用该分页视图即可。
<div class="container">
@foreach ($sites as $site)
{{ $site->title }}
@endforeach
</div>
{{ $sites->links('vendor.pagination.mypagination1') }}