在从yajra datatable
服务器端提取大数据同时应用列排序时,我遇到了问题。
对于列排序,我在查询构建器中使用了get()
。如果我避免使用它,而使用orderBy
,它可以很好地工作并且可以更快地获取记录,但是问题是列排序不起作用。
$query = DB::table('clients');
if(Auth::user()->role_id==2)
{
$clients= $query->whereRaw('user_id',Auth::id());
}
else if(Auth::user()->role_id==3)
{
$getCompanyId = User::where('id',Auth::id())
->first();
$clients= $query->whereRaw('user_id',$getCompanyId['added_by']);
}
$clients= $query->orderBy('id');
$clients = $query->select();
$clients = $query->get();
$datatables = datatables()->of($clients)
->addColumn('action', function ($clients) {
return '<button class="btn btn-xs buttonhover" data-id='.$clients->id.' data-backdrop="static" onclick="editClient(this);"><i class="fa fa-edit" aria-hidden="true"></i> Edit</button>
<button class="btn btn-xs buttonhover2" data-id='.$clients->id.' onclick="viewDetails(this);"><i class="fa fa-eye" aria-hidden="true"></i> View</button>
<button class="btn btn-xs buttondeletehover"data-id='.$clients->id.' onclick="confirmAlertBox(this)"><i class="fa fa-trash" aria-hidden="true"></i> Delete</button>';
})
->make(true);
return $datatables;
答案 0 :(得分:0)
不要在数据表中使用in,也不要获取()数据。而是使用雄辩的方法生成datatables对象并查询Sellect:
$users = User::query();
return DataTables::eloquent($users)
->toJson();
或仅使用order by生成雄辩的对象:
$users = User::orderBy('id');