public function listRemarks(ListRequest $request)
{
$listRemarks = $this->remarkservice->listRemarks($request);
$totalRecords = $listRemarks->count();
$limit = $request->length ?? 10;
$start = $request->start ?? 0;
$listRemarks->offset($start)->limit($limit);
$filterRecords = $listRemarks->count();
return DataTables::of($listRemarks)
->setTotalRecords($totalRecords)
->setFilteredRecords($filterRecords)
->toJson();
}
我想对从
$listRemarks
返回的记录进行分页,并且需要设置自定义开始和长度,例如,如果我将 $start
设置为 2,将 $limit
设置为 10,那么它必须返回从 id=3 到 id=12 的记录那个页面。另外,当我将 $start 更改为 0 以外时,recordsFiltered
没有给出正确的输出。输入 start 和 limit 产生的数据是正确的,但 recordsFilter
没有给出正确的计数。如果我使用 paginate()
,效果很好。
也许你可以尝试跳过并采取
public function listRemarks(ListRequest $request)
{
$query = $this->remarkservice->listRemarks($request);
$totalRecords = $query->count();
$limit = $request->input('length') ?? 10;
$start = $request->input('start') ?? 0;
$listRemarks = $query->skip($start)->take($limit)->get();
$filterRecords = $query->count();
return DataTables::of($listRemarks)
->setTotalRecords($totalRecords)
->setFilteredRecords($filterRecords)
->toJson();
}