问题描述
我有成千上万的记录,当我进行故障排除时会感觉很慢,这会导致前端处理的yajra分页。因此,我尝试改进自己的代码。它的渲染速度很快,但是当我单击下一页时,表格向我显示了空数据。
这是我的尝试:
$model = Order::with([
'buyer','order_details.order_domain','order_details.custom_vps','order_details.custom_hosting','order_details.custom_mail','order_details.bill','bill'
]);
$totalData = $model->count();
$totalFiltered = $totalData;
->orWhereHas('order_detail.custom_hosting',function (&$q) {
$q->where('is_upgrade',1);
})
->orWhereHas('order_detail.custom_vps',1);
})
->orWhereHas('order_detail.custom_mail',1);
});
$limit = ($request->length) ? $request->length : 10;
$start = ($request->start) ? $request->start : 0;
$model = $model->skip($start)->take($limit)->get();
$dTable = DataTables()->of($model)
->addIndexColumn()
->editColumn('order_code',function($data){
return $data->order_code;
})
->editColumn('created_at',function($data){
return date('d F Y',strtotime($data->created_at));
})
//blablabla....
->rawColumns(['status','action'])
->with(['recordsTotal'=>$totalData,"recordsFiltered" => $totalFiltered,'start' => $start]);
return $dTable->make(true);
我尝试过使用 skip-take 和 offset-limit 方法,但是在下一页上仍然出现空行,然后我用dd
调试了代码已经有一些数据,似乎无法渲染
解决方法
已解决
我尝试对yajra包进行动态分析,我的数组在143行文件的CollectionDataTable::paging()
上丢失了: yajra / laravel-datatables-oracle / src / CollectionDataTable.php ,因为我没有不放setOffset
解决方案:
$dTable = DataTables()->of($model)
->setOffset($start)
->addIndexColumn()