Возникли проблемы при сортировке и извлечении больших данных (yajra datatables) - PullRequest
2 голосов
/ 14 мая 2019

У меня проблема при извлечении больших данных со стороны 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>&nbsp;&nbsp;Edit</button>

                                <button class="btn btn-xs buttonhover2" data-id='.$clients->id.' onclick="viewDetails(this);"><i class="fa fa-eye" aria-hidden="true"></i>&nbsp;View</button>

                              <button class="btn btn-xs buttondeletehover"data-id='.$clients->id.' onclick="confirmAlertBox(this)"><i class="fa fa-trash" aria-hidden="true"></i>&nbsp;&nbsp;Delete</button>';
            })

            ->make(true);
        return $datatables;
...