thinkphp5下分页paginate()详解
paginate()可以传递3个参数
paginate($listRows = null, $simple = false, $config = [])
//$listRows 每页显示数据条数
//$simple 是否简洁模式
//$config 额外的配置参数
下面请看基础代码示例
//最基础的使用方法
$list = Db::name('book')->paginate(10);
this->assign('page',$list->render());
$this->assign('list',$list);
return $this->fetch('index/test');
<div style="padding:120px;">
<ul>
{volist name="list" id="vo"}
<li>{$vo.b_title}-{$vo.b_author}</li>
{/volist}
</ul>
{$page}
</div>
前端显示效果如下

若第二参数为true
$list = Db::name('book')->paginate(10,true);
效果如下

前端只会显示上下页按钮,将不再显示详细页数
接下来主要验证第三参数传参效果

1.list_rows
$list = Db::name('book')->paginate(10,false,[
//每页显示的数据条数
//若第一参数$listRows存在,则以第一参数为准
'list_rows' => 5
]);
2.page
$list = Db::name('book')->paginate(10,false,[
//只显示第二页数据
//即便url链接中page=3,其显示的数据还是page=2时的数据
'page' => 2,
]);

3.path
$list = Db::name('book')->paginate(10,false,[
//url路径
//跳转到根目录下
'path' => '/',
//跳转到外网
'path' => 'http://www.bookubang.com'
]);
网页链接效果如下


4.query
$list = Db::name('book')->paginate(10,false,[
//传递额外参数
'query' => ['web'=>'虹光'],
]);
效果如下

5.fragment
$list = Db::name('book')->paginate(10,false,[
//页面跳转到你指定的锚点处
'fragment' => 'maodian',
]);
{for start="1" end="100"}
<p>这是一条过渡句--{$i}</p>
{/for}
<div id="maodian" style="padding:20px 150px;">
<ul>
{volist name="list" id="vo"}
<li>{$vo.b_title}-{$vo.b_author}</li>
{/volist}
</ul>
{$page}
</div>
{for start="100" end="200"}
<p>这是一条过渡句--{$i}</p>
{/for}
效果如下

添加锚点后,页面将自动跳到所定义的锚点处,不再是页面头部
6.var_page
$list = Db::name('book')->paginate(10,false,[
//分页变量,默认是page,修改后url链接中的page将会变成list
'var_page' => 'list',
]);
前端效果

7.type
$list = Db::name('book')->paginate(10,false,[
//分页类名,类文件在/thinkphp/library/think/paginator/driver下
//默认是bootstrap,修改后将会报错
//若你不喜欢分页的样式风格,可以去文件中修改或者创建类似文件,然后对其替换
'type' => 'bootstrap'
]);