【发布时间】:2020-11-26 05:27:27
【问题描述】:
如何限制 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 个表行,这会影响应用程序的性能。有什么想法吗?
【问题讨论】:
-
与其拉取所有结果,不如尝试限制控制器中的结果。
-
已经尝试过使用
limit(10),但它只给了我10个结果,并且分页只有1 page。 -
您能分享一下
$results是什么吗? -
@linktoahref 请检查我的更新
-
对不起,我的意思是你的控制器代码。您是否尝试过 Eloquent Query Builder 方式而不是集合?
标签: laravel datatable yajra-datatable