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>