layui table组件与php后端分页的排序功能
1、前端代码
<table id="demo" lay-filter="test"></table><script type="text/html" id="barDemo"><a class="layui-btn layui-btn-xs" lay-event="edit">详情</a></script>
layui.use('table', function(){var table = layui.table;//第一个实例table.render({elem: '#demo',autoSort: false //禁用前端自动排序,url: "{{route('image_get_user_list_ajax')}}" //数据接口,where:{timeType:"{{$_GET['timeType']}}",startTime:"{{$data['param']['startTime']}}",endTime:"{{$data['param']['endTime']}}",keyword:"{{$data['param']['keyword']}}"},page: true //开启分页,cols: [[ //表头 sort 表示分页{field: 'id', title: '会员ID', fixed: 'left',unresize: true,width:120},{field: 'phone', title: '手机号',unresize: true,width:150},{field: 'pur_amount', title: '消费金额',unresize: true,width:150,sort: true},{field: 'regtime', title: '注册时间',unresize: true,width:210},{field: 'last_pur', title: '最近支付时间',unresize: true,width:210},{field: 'vip_end_time', title: 'vip到期时间',unresize: true,width:250},{field: 'status_str', title: '会员状态', width: 100},{field: 'free_times', title: '剩余免费次数', width: 150,sort: true},{field: '', title: '操作', toolbar: '#barDemo',align:'center'}]]});//监听工具条 点击详情按钮table.on('tool(test)', function(obj){var data = obj.data;if(obj.event === 'edit'){location.href="{{ route($data['route_prefix'].'_user_detail') }}?id="+data.id}});//触发排序事件table.on('sort(test)', function(obj){table.reload('demo', {initSort: obj,where: {field: obj.field //排序字段,order: obj.type //排序方式}});});});
2、php代码
<?php$res = $list->toArray()['data']; //分页之后的数据if ($request->input('field') && $request->input('order')) { //排序$res_order = array_column($res, $request->input('filed'));if ($request->input('order') == 'asc') $order = SORT_ASC;if ($request->input('order') == 'desc') $order = SORT_DESC;array_multisort($res_order, $order, $res);}$ajax_data['code'] = 0;$ajax_data['msg'] = '';$ajax_data['count'] = $list->total();$ajax_data['data'] = $res;return json_encode($ajax_data);
