yajra\DataTables需要很长时间才能将数据传输到laravel
我使用yajra\DataTable服务器端来携带数据,问题是即使只携带2行数据也需要很长时间, 这是我的密码 $module\u name=$this->module\u name; $module\u model=$this->module\u modelyajra\DataTables需要很长时间才能将数据传输到laravel,laravel,datatable,yajra-datatable,Laravel,Datatable,Yajra Datatable,我使用yajra\DataTable服务器端来携带数据,问题是即使只携带2行数据也需要很长时间, 这是我的密码 $module\u name=$this->module\u name; $module\u model=$this->module\u model $$module_name = $module_model::select('id', 'name', 'status','start_time','finish_time','duration','created_at')-&g
$$module_name = $module_model::select('id', 'name', 'status','start_time','finish_time','duration','created_at')->orderBy('id', 'desc');
$examLists=[];
if(! Auth::user()->hasAnyRole(['super admin'])){
//Kullanıcıya atanan sınavları görmek için
//Kullanıcı ile aynı kategoride olan sınavlar seçilmektedir.
foreach (Auth::user()->userCategory as $cat) {
foreach(UserCategory::findOrFail($cat->id)->exams as $exam) {
if( Auth::user()->hasAnyRole(['student','yeni Öğrenci']))
{
if($exam['status']=='publish')
array_push($examLists,$exam->id);
$$module_name = $$module_name->where('finish_time','>',Carbon::now());
}
else{
array_push($examLists,$exam->id);}
}
}
$$module_name = $$module_name->whereIn('id', $examLists);
}
$now = Carbon::now();
return Datatables::of($$module_name)
->editColumn('status', function ($data) {
if(isset($data->status) && $data->status=='publish')
return __("labels.backend.publish");
if(isset($data->status) && $data->status=='new')
return __("labels.backend.new");
if(isset($data->status) && $data->status=='preparing')
return __("labels.backend.prepare");
if(isset($data->status) && $data->status=='ready')
return __("labels.backend.ready");
})
->addColumn('action', function ($data) {
$module_name = $this->module_name;
return view ('backend.includes.action_column',compact('module_name','data'));
})
->addColumn('date_name', function ($data){
return '';
$module_name = $this->module_name;
$date = date("d-m-Y H:i", strtotime($data->start_time));
$date= Carbon::parse($date);
$diff = $date->diffForHumans($now);
$date2 = date("d-m-Y H:i", strtotime($data->finish_time));
$date2= Carbon::parse($date2);
$diff2 = $date2->diffForHumans($now);
if($data->start_time > Carbon::now())
return "<span class=\"badge badge-primary\" style='color: white;text-align: center; height: 18px;'>".__('exams.willstart')."( ".$diff." Başlayacak) </span>";
if($data->start_time < Carbon::now() && $data->finish_time > Carbon::now())
return "<span class=\"badge badge-success\" style='color: white;text-align: center; height: 18px;'>".__('exams.exam_continue'). "( ".$diff2." Bitecek) </span>";
if( $data->finish_time < Carbon::now())
return "<span class=\"badge badge-danger\" style='color: white;text-align: center ; height: 18px;'>".__('exams.finished'). "</span>";
})
->editColumn('duration','{{$duration}} dk.')
->rawColumns(['name', 'action','start_time','finish_time','duration'])
->orderColumns(['id'], '-:column $1')
->make(true);
仅加载两行花了2秒多的时间
这是2行的高延迟,所以我在想如果我有10000条记录会发生什么
$('#datatable').DataTable({
processing: true,
serverSide: true,
autoWidth: true,
responsive: true,
ajax: '{{ route("backend.$module_name.index_data") }}',
columns: [
{data: 'id', name: 'id'},
{data: 'name', name: 'name'},
{data: 'email', name: 'email'},
{data: 'status', name: 'status'},
{data: 'user_roles', name: 'user_roles'},
{data: 'action', name: 'action', orderable: false, searchable: false}
]
});