如何限制 Yajra 数据表中每页的结果
How to limit results per page in Yajra datatables
如何限制Yajra数据tables中每页数据的结果?目前我正在使用下面的代码:
控制器
return Datatables::of(collect($results))->make(true);
$results
变量只是来自数据库的一组数据。
JS
$('table.dataTableAjax').DataTable({
"processing": true, // Make this true, to show the "Processing" word while loading
"serverSide": true,
"paging": true,
"pageLength": 10,
"ordering": false, // Make this false, to disable sorting
"ajax": "..."
});
来自服务器的示例数据
{
"data":[
{ "name": "Bob", "Age": 30 },
{ "name": "Billy", "Age": 33 },
{ "name": "Megan", "Age": 31 }
]
}
例如,第一页应加载 10 行,下一页应加载 10 行,依此类推。但是发生的事情是它加载了 5000 多行,并在客户端将它们切割成 10 table 行,这会影响应用程序的性能。有什么想法吗?
我最后只是在下面添加了这些代码,并没有使用 yajra 来实现功能。
$limit = request('length');
$start = request('start');
$query->offset($start)->limit($limit);
return response()->json([
"draw" => intval(request('draw')),
"recordsTotal" => intval(User::count()),
"recordsFiltered" => intval($total_filtered),
"data" => $results
]);
一切正常,加载速度更快。我没有注意到datatables实际上将请求抛到laravel端点(路由)。
这对我有用,代码更短
return Datatables::of($data)->setTotalRecords(500)->make(true);
setTotalRecords()
是您正在寻找的最佳答案
如何限制Yajra数据tables中每页数据的结果?目前我正在使用下面的代码:
控制器
return Datatables::of(collect($results))->make(true);
$results
变量只是来自数据库的一组数据。
JS
$('table.dataTableAjax').DataTable({
"processing": true, // Make this true, to show the "Processing" word while loading
"serverSide": true,
"paging": true,
"pageLength": 10,
"ordering": false, // Make this false, to disable sorting
"ajax": "..."
});
来自服务器的示例数据
{
"data":[
{ "name": "Bob", "Age": 30 },
{ "name": "Billy", "Age": 33 },
{ "name": "Megan", "Age": 31 }
]
}
例如,第一页应加载 10 行,下一页应加载 10 行,依此类推。但是发生的事情是它加载了 5000 多行,并在客户端将它们切割成 10 table 行,这会影响应用程序的性能。有什么想法吗?
我最后只是在下面添加了这些代码,并没有使用 yajra 来实现功能。
$limit = request('length');
$start = request('start');
$query->offset($start)->limit($limit);
return response()->json([
"draw" => intval(request('draw')),
"recordsTotal" => intval(User::count()),
"recordsFiltered" => intval($total_filtered),
"data" => $results
]);
一切正常,加载速度更快。我没有注意到datatables实际上将请求抛到laravel端点(路由)。
这对我有用,代码更短
return Datatables::of($data)->setTotalRecords(500)->make(true);
setTotalRecords()
是您正在寻找的最佳答案