文章讲解“模型-内置标签之定义标签”,本篇文章讲解“杂项-分页之分页实现”。
一、分页实现
ThinkPHP5.1内置了分页实现,要给数据添加分页输出功能变得非常简单。
1.使用Db类实现分页
1)使用Db类查询的时候调用paginate方法:
①新建Index控制器,并新建dbpage方法
②新建dbpage.html模板,并在模板中展示数据
预览:
2)单独赋值分页输出的模板变量
①在ThinkPHP3版本时,分页模板与数据是单独分开的,在ThinkPHP5中也支持单独的分页模板。
②在dbpage.html模板中,输出分页模板
预览:
注意:1.默认情况下,生成的分页输出是完整分页功能,带总分页数据和上下页码,分页样式只需要通过样式修改即可,完整分页默认生成的分页输出代码为:ullispan/span/lilispan1/span/liliahref=url?page=22/a/li/ul
3)单独获取总数据数
预览:
2.模型的分页查询
以上使用的是Db类的分页查询方式,也可以使用模型进行分页查询。
①新建User模型,并新建getList方法,获取分页查询数据
②在Index控制器中,新建modelpage方法,调用模型中的getList方法
③新建modelpage.html模板,在模板中输出数据
预览:
注意:1.使用模型类实现分页与Db类实现分页相同,其中Db类可以获取的总页数、单独输出分页在模型类中依旧可以实现。
3.传入总记录数
支持传入总记录数而不会自动进行总数计算。
①在Index控制器中,新建totalnum方法
②新建totalnum.html模板,在模板中输出数据
注意:1.对于UNION查询以及一些特殊的复杂查询,推荐使用这种方式首先单独查询总记录数,然后再传入分页方法。
4.分页后数据处理
支持分页类后数据直接each遍历处理,方便修改分页后的数据,而不是只能通过模型的获取器来补充字段。
1)使用模型进行分页后数据处理
①在Index控制器中,新建eachnum方法
②新建totalnum.html模板,在模板中输出数据
预览:
2)使用Db类进行分页后数据处理
如果是Db类操作分页数据的话,each方法的闭包函数中需要使用返回值。
①在Index控制器中,新建dbeach方法
预览:
ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员