Skip to content

Instantly share code, notes, and snippets.

@autotrof
Last active June 24, 2020 07:41
Show Gist options
  • Select an option

  • Save autotrof/d62c354708965d086f501196dd9ba308 to your computer and use it in GitHub Desktop.

Select an option

Save autotrof/d62c354708965d086f501196dd9ba308 to your computer and use it in GitHub Desktop.
datatable ajax laravel. function data. untuk link video bisa buka https://youtu.be/T-7PCbV-e8A
public function data(Request $request)
{
$orderBy = 'template_baru.id';
switch($request->input('order.0.column')){
case "0":
$orderBy = 'template_baru.id';
break;
case "1":
$orderBy = 'template_baru.judul';
break;
case "2":
$orderBy = 'template_baru.deskripsi';
break;
case "3":
$orderBy = 'user.nama';
break;
case "4":
$orderBy = 'template_baru.status';
break;
}
$data = TemplateBaru::select([
'template_baru.*',
'users.nama as nama_user',
'users.id as id_user'
])
->join('users','users.id','=','template_baru.user_id')
;
if($request->input('diajukan')==1){
$data = $data->where('template_baru.nasional',false)->where('template_baru.diajukan',true);
}else if(Auth::user()->jenis=='lokal'){
$data = $data->orWhere(function($q1){
$q1
->where('nasional',true)
->orWhere(function($q2){
$q2->where('nasional',false)->where('user_id',Auth::user()->id);
});
});
}else{
$data = $data->where('nasional',true);
}
if($request->input('filter-status')!=null){
$_f = $request->input('filter-status');
switch ($_f) {
case 'diajukan':
$data = $data->where('template_baru.diajukan',true)->where('nasional',false);
break;
case 'lokal':
$data = $data->where('nasional',false);
break;
case 'nasional':
$data = $data->where('template_baru.nasional',true);
break;
}
}
if($request->input('filter-pembuat')!=null){
$_f = $request->input('filter-pembuat');
$data = $data->where('template_baru.user_id',$_f);
}
if($request->input('search.value')!=null){
$data = $data->where(function($q)use($request){
$q
->whereRaw('LOWER(template_baru.nama) like ? ',['%'.strtolower($request->input('search.value')).'%'])
->orWhereRaw('LOWER(template_baru.kode) like ? ',['%'.strtolower($request->input('search.value')).'%'])
->orWhereRaw('LOWER(users.nama) like ? ',['%'.strtolower($request->input('search.value')).'%'])
->orWhereRaw('LOWER(template_baru.deskripsi) like ? ',['%'.strtolower($request->input('search.value')).'%'])
;
});
}
$recordsFiltered = $data->get()->count();
if($request->input('length')!=-1) $data = $data->skip($request->input('start'))->take($request->input('length'));
$data = $data->orderBy($orderBy,$request->input('order.0.dir'))->get();
$recordsTotal = $data->count();
return jf([
'draw'=>$request->input('draw'),
'recordsTotal'=>$recordsTotal,
'recordsFiltered'=>$recordsFiltered,
'data'=>$data
]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment