thinkphp6 大数据分页,计算分页总量,layui分页
官方文档给的解决方法:
$list = Db::name('user')->where('status',1)->paginateX(50);但这个方法能分页,不能给出总数来,所以总数需要自己算一下。
$page = intval(Db::query("SELECT COUNT(*) FROM user")[0]['COUNT(*)']/50);完整代码实例:
public function czl()
{
$list = Db::name('user')->order('update_time', 'desc')->where('state',1)->paginateX(50);
//计算总量
$page = intval(Db::query("SELECT COUNT(*) FROM user")[0]['COUNT(*)']/50);
//渲染模板输出
return view('show', ['list' => $list, 'page' => $page]);
}前端layui代码:
<div id="pager"></div>
<script src="/static/layui.js"></script>
<script>
layui.use('laypage', function(){
var laypage = layui.laypage;
//执行一个laypage实例
laypage.render({
elem: 'pager' //注意,这里的 test1 是 ID,不用加 # 号
,count: {$page} //数据总数,从服务端得到
,limit:50
,jump: function(obj, first){
if(!first){
// layer.msg('第'+ obj.curr +'页');
window.location.href="/show?page="+obj.curr;//向URL中传递页数并显示
}}
});
});
</script>
