Laravel yajra表分页服务器端,下一页为空

问题描述

我有成千上万的记录,当我进行故障排除时会感觉很慢,这会导致前端处理的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调试了代码已经有一些数据,似乎无法渲染

这是我的数据表的输出

enter image description here

另外,这是我的调试输出(在第二页上):

enter image description here

有人可以帮我吗?

解决方法

已解决

我尝试对yajra包进行动态分析,我的数组在143行文件的CollectionDataTable::paging()上丢失了: yajra / laravel-datatables-oracle / src / CollectionDataTable.php ,因为我没有不放setOffset

解决方案:

$dTable = DataTables()->of($model)
            ->setOffset($start)
            ->addIndexColumn()

相关问答

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