laravel8 datatables 渲染页面 分页

引入datatables css js cdn 链接

   <!--第一步:引入Javascript / CSS (CDN)-->
    <!-- DataTables CSS -->
    <link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.21/css/jquery.dataTables.css">
 
    <!-- jQuery -->
    <script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
 
    <!-- DataTables -->
    <script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.21/js/jquery.dataTables.js"></script>

布局要展示的页面

<table id="table">
    <thead align="center">
        <th>ID</th>
        <th>账号</th>
        <th>手机</th>
        <th>所属角色</th>
        <th>状态</th>
        <th>创建时间</th>
        <th>操作</th>
    </thead>
    <tbody  align="center">

    </tbody>
</table>

初始化datatables

<!--第三步:初始化Datatables-->
$(document).ready( function () {
    $('#table').DataTable({
        // 开启分页
        paging:true,
        "aaSorting": [[ 0, "desc" ]],
        "columnDefs":[{
     'targets' : [1,2,3,4,5],    //默认不排序
     'orderable' : false
  }],
        //关闭搜索
        "searching": false,
        // scrollY:500,
        //每页显示条数
        lengthMenu:[3,5,7,10],
        //开启服务器模式
        serverSide: true,

        //后端请求
        ajax:{
            url:'{{url('indexs')}}',
            type:'get'
        },
        //需要展示页面的数据
        columns:[
            //{'data':"字段名称",'defaultContent':"默认值",'className':"类名"}
            {'data':'id'},
            {'data':"username"},
            {'data':'phone'},
            {'data':'role_id'},
            {'data':'state'},
            {'data':"created_at"},
            {'data':"btn"},

        ]

    });
});

后端代码 实现渲染分页

public function indexs(Request $request)
{
    //查询数据库数据
    $data = User::all();
    //记录总条数
    $total = $data->count();
    //分页开始的位置
    $start = $request->get('start');
    //分页结束的位置
    $length = $request->get('length');
    //接收要搜索的数据
    $search = $request->get('search',[]);
    //获取排序信息数组
    $orderArr = $request->get('order')[0];
    // 排序索引
    $column = $orderArr['column'];
    // 排序类型 升还是降
    $dir = $orderArr['dir'];
    // 排序字段
    $orderField = $request->get('columns')[$column]['data'];
    //分页
    $data = User::offset($start)->limit($length)->orderBy($orderField,$dir)->get();
    //datatables 返回参数必选 一下四个
    $result = [
        'draw'=>$request->get('draw'),
        'recordsTotal'=>$total,
        'recordsFiltered'=>$total,
        'data'=>$data
    ];
    return $result;

}

model 模型层代码

protected $appends=['btn'];

    public function getBtnAttribute($value)
    {
        return "<button  onclick='del(this,".$this->id.")'>删除</button>";
    }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值