php - PHP Laravel 7 Yarja Datatables 错误加载 800k+ 数据
问题描述
数据表版本: 1.10.19
拉拉维尔: 7.3
880k记录数据
问题:显示前 10 个结果是正确的,有点慢,但是没问题...
Mostrando de 1 até 10 de 880.951 registros
所以,当我点击第二页时,显示:
Mostrando de 11 até 20 de 880.951 registros
但不显示记录:
Nenhum registro encontrado(未找到记录)
admin_template.blade.php
$.extend(true, $.fn.dataTable.defaults, {
order: [],
scrollX: true,
processing: true,
serverSide: true,
paging: true,
pageLength: 1
控制器:
public function index(Request $request)
{
if ($request->ajax()) {
$limit = request('length');
$skip = request('start');
$count = Ip::getAll()->count();
$table = Datatables::of(Ip::getAll()->take($limit)->skip($skip))->setTotalRecords($count);
$table->addColumn('placeholder', ' ');
$table->addColumn('actions', ' ');
$table->editColumn('actions', function ($row) {
$viewGate = 'ip_show';
$crudRoutePart = 'ip';
return view('partials.datatablesActionsInfo', compact(
'viewGate',
'crudRoutePart',
'row'
));
});
$table->rawColumns(['actions', 'placeholder']);
return $table->make(true);
}
index.php(在 admin_template.blade.php 内)
<table class=" table table-bordered table-striped table-hover ajaxTable datatable datatable-ip">
<thead>
<tr>
<th width="10">
</th>
<th>
{{ trans('cruds.ip.fields.name') }}
</th>
<th>
</th>
</tr>
</thead>
</table>
<script>
$(function () {
let dtButtons = $.extend(true, [], $.fn.dataTable.defaults.buttons)
let dtOverrideGlobals = {
buttons: dtButtons,
processing: true,
serverSide: true,
order: [[ 1, 'desc' ]],
pageLength: 10,
//iDisplayLength: 10,
aaSorting: [],
ajax: "{{ route('info.ip.index') }}",
columns: [
{ data: 'placeholder', name: 'placeholder' },
{ data: 'nome', name: 'nome' },
{ data: 'actions', name: '{{ trans('global.actions') }}' }
],
};
$('.datatable-ip').DataTable(dtOverrideGlobals);
$('a[data-toggle="tab"]').on('shown.bs.tab', function(e){
$($.fn.dataTable.tables(true)).DataTable()
.columns.adjust();
});
});
</script>
解决方案
推荐阅读
- php - Memcached 在 Web 浏览器中不起作用,但使用 php 命令工作
- python - 如何通过公共列组合 2 个熊猫数组
- r - Bioconductor、R 版本和本地安装
- java - 使用 Java 进行安全用户身份验证
- amazon-web-services - 有没有办法在 AWS ECS 中设置 DNS 选项?
- react-native-maps - 所有 firebase 库必须高于或低于 14.0.0 (react-native-maps & react-native-firebase)
- scala - 字符串在 Scala 中被错误地解析为日期时间格式
- angular - 为什么 Angular 调用我的函数……几十次?
- jenkins - 在多个阶段之间重用 Jenkins 中的代理(docker 容器)
- ssl - 旧 TLS1.0 客户端无法连接到自定义域上的 Google App Engine