laravel - 如何限制 Yajra 数据表中每页的结果
问题描述
如何限制 Yajra 数据表中每一页的数据结果?目前我正在使用下面的代码:
控制器
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 个表行,这会影响应用程序的性能。任何的想法?
解决方案
最后我只是在下面添加了这些代码,而不是使用 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
]);
一切正常,加载速度更快。我没有注意到数据表实际上向 laravel 端点(路由)抛出了请求。
推荐阅读
- python - 是否可以 pyscreez.locate(needleImage, haystackImage): 无需每次都从文件中读取 haystackImage?
- r - 将 %in% 语句与 knit_expand 一起使用
- json - Powershell SQLConnection JSON Insert 适用于 PS5 但不适用于 PS7
- flutter - Flutter / MOOR - 如何更新(添加,而不是替换)列表类型的单个列
一张桌子的 - python - 在 Python 中,我想将几个 csv 文件合并到一个 csv 文件中。我收到错误消息:“第一个参数必须是可迭代的 pandas 对象,您通过了......”
- html - 使用“表单控件”删除输入字段的轮廓
- javascript - 使用 variable.length 测试值是否为空
- sql-server - 查找多个刷入/刷出时间戳之间的总分钟数 - 从垂直行中选择多个记录并转换水平行
- python - 使用 Python 和 selenium,获取无限滚动网站上的元素?
- python - 不可散列的类型:“图”