рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рдХрдИ рд╕реНрддрдВрдн рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдкрд╣рд▓реЗ_рдирд╛рдо рдФрд░ рдЕрдВрддрд┐рдо_рдирд╛рдо рд╕реЗ рд╕рдВрдпреБрдХреНрдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛрд▓рдореНрдм () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛
рдореИрдВрдиреЗ рдЖрдкрдХрд╛ рдбреЗрдореЛ рдкрдврд╝рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдХреНрд╡реЗрд░реА рдЕрд▓рдЧ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рднреА рднреНрд░рдорд┐рдд рд╣реВрдВ :(
$(function () {
$("#datatable").DataTable({
processing: true,
serverSide: true,
"order": [[ 1, "asc" ]],
ajax: "{!! route('admin.customers.getdata','Umum') !!}",
columns: [
{ data: null, bSortable: false, className: "text-center" },
{ data: "id" },
{ data: "name", name: "name" },
{ data: "type" },
{ data: "email" },
{ data: "location" },
{ data: "active", bSortable: false, className: "text-center" },
{ data: "free_ongkir", bSortable: false, className: "text-center" },
{ data: "action", bSortable: false, className: "text-center" }
],
fnRowCallback: function(nRow, aData, iDisplayIndex){
$("td:first", nRow).html(iDisplayIndex +1);
return nRow;
}
});
рдФрд░ рдпрд╣ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХреЛрдб рд╣реИ
public function getdata($type)
{
$users = User::where(['type'=>$type])->whereHas('roles', function ($query) {
$query->where('slug', '=', 'user');
})->get();
foreach ($users as $key => $value) {
if($value->id == Sentinel::getUser()->id) $value->disabled = "disabled";
else$value->disabled = "";
}
return Datatables::of($users)
->editColumn('name', '
<a href="{{ route(\'admin.customers.show\', $id) }}">{!! $first_name." ".$last_name !!}</a>
')
->filterColumn('name', function($query, $keyword) {
$sql = "CONCAT(users.first_name,'-',users.last_name) like ?";
$query->whereRaw($sql, ["%{$keyword}%"]);
})
->editColumn('type', function($users) {
if($users->hasAccess('superadmin')) return 'Super Admin';
else return "Komoditi $users->type";
})
->editColumn('active', function($users) {
if(!$users->is_approved) {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum di approve</label></span>';
} else if(Activation::completed($users)) {
return '<span class="has-success form-group"><label><i class="fa fa-check"></i> Aktif</label></span>';
} else {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum Aktivasi</label></span>';
}
})
->editColumn('free_ongkir', function($users) {
if ($users->free_ongkir == 1) {
return '<span class="has-success form-group"><label><i class="fa fa-check"></i></label></span>';
}else {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i></label></span>';
}
})
->editColumn('location', function($users){
if(empty($users->city->name)) return 'None';
else return $users->city->name;
})
->addColumn('action', '@if(Sentinel::getUser()->hasAccess(["customers.edit"]))<button class="btn btn-primary" type="button" onClick="location.href=\'{{ route(\'admin.customers.edit\', $id) }}\'"><i class="fa fa-edit"></i></button>
<strong i="13">@endif</strong>
{!! Form::open([
\'method\'=>\'DELETE\',
\'route\' => [\'admin.customers.destroy\', $id],
\'style\' => \'display:inline\'
]) !!}
@if(Sentinel::getUser()->hasAccess(["customers.destroy"]))
{!! Form::button(\'<i class="fa fa-trash"></i>\', [\'class\' => \'btn btn-danger btn-md\',\'type\'=>\'submit\',\'onclick\'=>\'return confirm("Are you sure want to delete?")\', $disabled]) !!}
<strong i="14">@endif</strong>
{!! Form::close() !!}
')
->make(true);
}
@faisalhilmi https://github.com/yajra/laravel-datatables/issat/1173 рдкрд░ рдкреНрд░рд╕реНрддреБрдд рд╕рдорд╛рдзрд╛рди
рдореБрдЭреЗ рд╕рдВрджрд░реНрдн рдорд┐рд▓рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ:
{ data: "name", name: "name" },
{ data: "first_name", name: "first_name", visible: false },
{ data: "last_name", name: "last_name", visible: false },
рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ:
->editColumn('name', '
<a href="{{ route(\'admin.customers.show\', $id) }}">{!! $first_name." ".$last_name !!}</a>
')
->filterColumn('name', function($query, $keyword) {
$query->orWhere('first_name', 'like', '%'. $keyword . '%');
$query->orWhere('last_name', 'like', '%'. $keyword . '%');
})
рд▓реЗрдХрд┐рди рдЦреЛрдЬ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ_рдирд╛рдо рдпрд╛ рдЕрдВрддрд┐рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддреА рд╣реИ, рджреЛрдиреЛрдВ рдореЗрдВ рдирд╣реАрдВред
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ?
рд╣рдореНрдо, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╢рдмреНрдж рдЦреЛрдЬ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣рд╛рдВ рдПрдХ рдмрдЧ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдкреВрд░рд╛ рдирд╛рдо рд╕реНрдерд╛рди рдЕрд▓рдЧ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░рдХреЛрдо рдореЗрдВ рдкрд╛рд░рд┐рдд рдХреАрд╡рд░реНрдб рдЕрдм рджреЛ рднрд╛рдЧреЛрдВ (рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо) рдореЗрдВ рдЕрд▓рдЧ рд╣реЛ рдЧрдП рд╣реИрдВред
рдХреНрдпрд╛ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
->filterColumn('name', function($query, $keyword) {
$sql = "CONCAT(users.first_name,'-',users.last_name) like ?";
$keyword = request('search.value');
$query->whereRaw($sql, ["%{$keyword}%"]);
})
рд╣рд╛рдБ рдореИрдВ рдкреВрд░рд╛ рдирд╛рдо рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ :)
рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ
$users = User::where(['type'=>$type])->whereHas('roles', function ($query) {
$query->where('slug', '=', 'user');
})->get();
foreach ($users as $key => $value) {
if($value->id == Sentinel::getUser()->id) $value->disabled = "disabled";
else$value->disabled = "";
}
return Datatables::of($users)
->editColumn('name', '
<a href="{{ route(\'admin.customers.show\', $id) }}">{!! $first_name." ".$last_name !!}</a>
')
->filterColumn('name', function($query, $keyword) {
$sql = "CONCAT(users.first_name,'-',users.last_name) like ?";
$keyword = request('search.value');
$query->whereRaw($sql, ["%{$keyword}%"]);
})
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $ $ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ :(
рдХреНрдпрд╛ рдпрд╣ $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдХреНрд╡реЗрд░реА рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реИ?
рдХреНрдпрд╛ рдЖрдкрдХреА рдЕрдЬрд╛рдХреНрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИ?
рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ, рдмрд╕ "рдХреЛрдИ рдорд┐рд▓рд╛рди рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдорд┐рд▓рд╛" рдЬрдм рдореИрдВ "рдЧреНрд░рд╛рд╣рдХ рдпреВрдо" рдЦреЛрдЬрддрд╛ рд╣реВрдВ
"рдЧреНрд░рд╛рд╣рдХ" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ first_name рд╣реИ
"umum" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ last_name рд╣реИ
рдХреНрдпрд╛ рдЖрдк рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдЙрддреНрдкрдиреНрди рдПрд╕рдХреНрдпреВрдПрд▓ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ sql рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╡реВрдкреНрд╕ рдХреЛ рд╕рд┐рд░реНрдл рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЖрдк v6.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкрд░ рдХрдИ рд╢рдмреНрдж рдЦреЛрдЬ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред рдорд╛рдлрд╝ рдХрд░рдирд╛!
"рдпрд╛рдЬрд░рд╛ / рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕-рдСрд░реЗрдХрд▓": "~ 6.0", рд╕рдорд╕реНрдпрд╛ рд╣реИ?
рдирд╣реАрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЧрд▓рдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗ рд░рд╣рд╛ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдЖрдкрдХреА рдЙрддреНрдкрдиреНрди SQL рдкрд░ рд╣реИред
рдЖрдк рдкрд╣рд▓реЗ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдкрд░ рдХрдВрдХрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП -
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рдореБрджреНрджрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ?
рдирд╣реАрдВ рдЕрднреА рднреА рдЦрд┐рдЪрдбрд╝реА рднрд╛рд╖рд╛ рдХрд╛ рдкреВрд░рд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ :(
рдЖрдкрдХреЛ рдЙрддреНрдкрдиреНрди рдХреНрд╡реЗрд░реА рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрд░реЛрдо рджреЗрд╡ рдЯреВрд▓реНрд╕ рдпрд╛ рдлрд╛рдпрд░рдмрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЙрддреНрдкрдиреНрди SQL рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдХреЙрдиреНрд╕реИрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛?
$users = User::where(['type'=>$type])->whereHas('roles', function ($query) {
$query->where('slug', '=', 'user');
})->get();
рдУрд╣, рдЖрдкрдХреЛ ->get();
рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреИрдХреЗрдЬ рдХреЛ sql рд╕реНрддрд░ рдкрд░ рдкреГрд╖реНрдард╛рдВрдХрди рдХрд░рдиреЗ рджреЗрдВред
рдореИрдВ рдЦрд┐рдЪрдбрд╝реА рднрд╛рд╖рд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рднрд╛рдИ рдмрд╣рди :(
рдпрджрд┐ рдЖрдк ->get()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдм рд╡рд╛рдХреНрдкрдЯреБ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ filterColumn Collection
рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдкрд░ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЦреЛрдЬ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реА рд╣реИред
рдЕрдВрдд рдореЗрдВ рд╣рд▓, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ datatable рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд:
$("#datatable").DataTable({
processing: true,
serverSide: true,
"order": [[ 1, "asc" ]],
ajax: "{!! route('admin.customers.getdata','Umum') !!}",
columns: [
{ data: null, bSortable: false, className: "text-center" },
{ data: "id" },
{ data: "name", name: "full_name" },
{ data: "type" },
{ data: "email" },
{ data: "location" },
{ data: "active", bSortable: false, className: "text-center" },
{ data: "free_ongkir", bSortable: false, className: "text-center" },
{ data: "action", bSortable: false, className: "text-center" }
],
fnRowCallback: function(nRow, aData, iDisplayIndex){
$("td:first", nRow).html(iDisplayIndex +1);
return nRow;
}
});
рдирд┐рдпрдВрддреНрд░рдХ:
{
$users = User::select('id','email','first_name','last_name','city_id', 'is_approved','type', DB::raw("CONCAT(first_name,' ',last_name) as full_name"))->where(['type'=>$type])->whereHas('roles', function ($query) {
$query->where('slug', '=', 'user');
})->get();
foreach ($users as $key => $value) {
if($value->id == Sentinel::getUser()->id) $value->disabled = "disabled";
else$value->disabled = "";
}
return Datatables::of($users)
->editColumn('name', '
<a href="{{ route(\'admin.customers.show\', $id) }}">{!! $first_name." ".$last_name !!}</a>
')
->editColumn('type', function($users) {
if($users->hasAccess('superadmin')) return 'Super Admin';
else return "Komoditi $users->type";
})
->editColumn('active', function($users) {
if(!$users->is_approved) {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum di approve</label></span>';
} else if(Activation::completed($users)) {
return '<span class="has-success form-group"><label><i class="fa fa-check"></i> Aktif</label></span>';
} else {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i> Belum Aktivasi</label></span>';
}
})
->editColumn('free_ongkir', function($users) {
if ($users->free_ongkir == 1) {
return '<span class="has-success form-group"><label><i class="fa fa-check"></i></label></span>';
}else {
return '<span class="has-error form-group"><label><i class="fa fa-times-circle-o"></i></label></span>';
}
})
->editColumn('location', function($users){
if(empty($users->city->name)) return 'None';
else return $users->city->name;
})
->addColumn('action', '@if(Sentinel::getUser()->hasAccess(["customers.edit"]))<button class="btn btn-primary" type="button" onClick="location.href=\'{{ route(\'admin.customers.edit\', $id) }}\'"><i class="fa fa-edit"></i></button>
<strong i="9">@endif</strong>
{!! Form::open([
\'method\'=>\'DELETE\',
\'route\' => [\'admin.customers.destroy\', $id],
\'style\' => \'display:inline\'
]) !!}
@if(Sentinel::getUser()->hasAccess(["customers.destroy"]))
{!! Form::button(\'<i class="fa fa-trash"></i>\', [\'class\' => \'btn btn-danger btn-md\',\'type\'=>\'submit\',\'onclick\'=>\'return confirm("Are you sure want to delete?")\', $disabled]) !!}
<strong i="10">@endif</strong>
{!! Form::close() !!}
')
->make(true);
}
рдзрдиреНрдпрд╡рд╛рдж :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрдВрдд рдореЗрдВ рд╣рд▓, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ datatable рдореЗрдВ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд:
рдирд┐рдпрдВрддреНрд░рдХ:
рдзрдиреНрдпрд╡рд╛рдж :)