官方文档给的解决方法:

$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>