Helo @tangtang , can you please explain about code below? because I tried same method in another controller, got error
$draw = $request->input('draw');
$start = $request->input('start');
$length = $request->input('length');
Code I hv tried with another controller like below, and got error
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
SELECT * FROM marketings OFFSET 0
public function index(Request $request) {
$query = Marketing::select('*');
$draw = $request->input('draw');
$start = $request->input('start');
$length = $request->input('length');
$recordsTotal = Marketing::count(); // total records without filtering
$recordsFiltered = $query->count(); // total records with filtering
$data = $query->skip($start)->take($length)->get();
$user = Auth::user();
$permissions = $user->getAllPermissions();
// Build the actions column HTML
$actions = [];
foreach ($data as $marketings) {
$marketings->marketing_id = $marketings->marketing_id;
$marketings->marketing_name = $marketings->marketing_name;
if($user->can('marketing-staff-info')) {
$canInfo = true;
}
else {
$canInfo= true;
}
if($user->can('marketing-staff-edit')) {
$canEdit = true;
} else {
$canEdit = false;
}
if($user->can('marketing-staff-delete')) {
$canDelete = true;
} else {
$canDelete = false;
}
$marketings->canInfo = $canInfo;
$marketings->canEdit = $canEdit;
$marketings->canDelete = $canDelete;
$actions[] = $marketings;
}
$response = [
'draw' => (int)$draw,
'recordsTotal' => $recordsTotal,
'recordsFiltered' => $recordsFiltered,
'data' => $data,
//'actions' => $actions, // include the actions column
];
return response()->json($response);
}
Ajax :
<script>
$(document).ready(function() {
$('#tblMarketingStaff').children('thead').remove();
//$("option[value='all']").remove();
$('#tblMarketingStaff').append('<thead><tr><th>ID Marketing</th><th>Nama Marketing</th><th>Aksi</th></tr></thead>');
var dataTable = $('#tblMarketingStaff').DataTable({
//processing: true,
info: false,
searching: false,
"bDestroy":true,
//dom: 'Bfrtip',
"pageLength": 10,
"language": {
"search": "Cari "
},
serverSide: true,
ajax: {
url: '{{ route('marketing-staff-index') }}',
type: 'GET',
},
columns: [
{
data: 'marketing_id',
name: 'marketing_id'
},
{
data: 'marketing_name',
name: 'marketing_name'
},
{
data: null,
render: function(data, type, row) {
var actionsHtml = '';
if (data.canInfo) {
actionsHtml +='<button value="' + row.marketing_id + '" class="btn btn-xs btn-success openModalMarketingStaffInfo" style="margin-right: 5px;">Info</button></a>';
}
if (data.canEdit) {
actionsHtml +='<button value="' + row.marketing_id + '"class="btn btn-xs btn-warning openModalMarketingStaffEdit" style="margin-right: 5px;">Edit</button></a>';
}
if (data.canDelete) {
actionsHtml +='<button value="' + row.marketing_id + '" class="btn btn-xs btn-danger openModalMarketingStaffDelete" onclick ="return confirm(\'Yakin menghapus ini ?\')">Delete</button></a>';
}
return actionsHtml;
}
}
]
});
});
</script>
{{-- ajaxFillTableMarketingEnd --}}