laravel的分页查询;layui分页数据获取

2025-03-07 0 14

《laravel的分页查询;layui分页数据获取》

在Web开发中,当面对大量数据展示时,分页功能是不可或缺的。对于Laravel和Layui结合使用的场景,我们可以轻松实现分页查询以及分页数据获取。

解决方案

总体思路是:在Laravel后端对数据进行分页处理并返回分页后的数据给前端,在前端利用Layui框架来呈现分页效果并正确获取分页数据。

Laravel后端分页查询

使用paginate方法

这是最直接的方式。例如我们有一个用户表(users),想要对用户数据进行分页查询:

php
// 在控制器方法中
public function getUsers()
{
// 假设每页显示10条数据
$perPage = 10;
$users = User::orderBy('created_at', 'desc')->paginate($perPage);
// 将分页数据转换为数组格式返回
return response()->json([
'code' => 0,
'msg' => '',
'data' => $users->items(),
'count' => $users->total(),
'rel' => true
]);
}

这里的$users->items()获取当前页的数据项,$users->total()获取总数据量,这些信息对于前端分页组件很重要。

自定义分页逻辑

有时候我们需要更复杂的分页逻辑,比如根据特定条件过滤后再分页:

php
public function getFilteredUsers(Request $request)
{
$query = User::query();
if ($request->has('name')) {
$query->where('name', 'like', '%' . $request->input('name') . '%');
}
// 继续添加其他过滤条件
$perPage = 15;
$filteredUsers = $query->orderBy('id', 'asc')->paginate($perPage);
return response()->json([
'code' => 0,
'msg' => '',
'data' => $filteredUsers->items(),
'count' => $filteredUsers->total(),
'rel' => true
]);
}

Layui前端分页数据获取

在前端页面引入Layui相关资源后,可以通过以下方式使用分页组件并获取分页数据。

html
</p>



    
    <title>Layui分页示例</title>
    


    <table id="userTable"></table>
    <div id="pageDemo"></div>
    
    
        layui.use(['table', 'laypage'], function(){
            var table = layui.table;
            var laypage = layui.laypage;

            // 渲染表格
            table.render({
                elem: '#userTable'
                ,url:'/getUsers' // 请求后端接口地址
                ,cols: [[
                    {field:'id', title:'ID'}
                    ,{field:'name', title:'用户名'}
                    // 根据实际字段继续添加列
                ]]
                ,page: true // 开启分页
                ,limits:[10,15,20]
                ,limit:10 // 每页默认显示的数量
                ,done:function(res, curr, count){
                    // 分页渲染完毕后的回调
                    laypage.render({
                        elem: 'pageDemo' // 分页容器的id
                        ,count: count // 数据总数
                        ,curr: curr // 当前页
                        ,limit: res.limit // 每页显示条数
                        ,jump: function(obj, first){
                            if(!first){
                                // 刷新表格数据,重新请求对应页的数据
                                table.reload('userTable', {
                                    page: {
                                        curr: obj.curr
                                    }
                                });
                            }
                        }
                    })
                }
            });

        });
    



<p>

以上就是在Laravel和Layui中实现分页查询以及分页数据获取的方法,通过这两种思路可以满足大多数项目中的分页需求。

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载