向Laravel Datables添加OFFSET和FETCH会导致分页中断

问题描述

我有一个相当长且复杂的查询,需要花费一些时间才能运行,但遗憾的是,此查询现在返回3000行。

我试图将OFFSET x ROWS FETCH NEXT x添加到脚本中,这适用于第一页,但是,当您单击第二页时,您会得到一个空表。

我还有另一个查询,它获取行数,该行数有效并显示corect行数。

我的问题是,为什么当我添加OFFSET x ROWS FETCH NEXT x时Datatables无法工作?如果我添加->with('QueryResults',$QueryResults),我可以看到所有应显示的数据

如果有人需要,可以在这里找到SQL Fiddle https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=0edf7bad9c4451e3cde49d3c3ef37283

public function TestTableList(Request $Request){
     $LIMITFrom = $Request->start;
     $LIMITPerPage = $Request->length;
     $Query = "SELECT id,rev,content FROM dbo.TestTable ORDER BY id ASC OFFSET " . $LIMITFrom . " ROWS FETCH NEXT " . $LIMITPerPage . " ROWS ONLY";
     $TotalRows = (DB::select("SELECT COUNT(*) AS COUNTER FROM dbo.TestTable"))[0]->COUNTER;
     $Results = DB::select($Query);

     return datatables()->collection($Results)
          ->with('QueryResults',$Results)
          ->addColumn('Options',function(){
               return 'Button HTML removed for smaller code';
          })
          ->setTotalRecords($TotalRows)
          ->rawColumns(['Options'])
          ->make(true);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...