I have a bookings data. At-present it has 10000 rows. How can list data using laravel and datatable with out taking to0 much loading time. At-present I had tried to list booking but initial loading took 20seconds. Currently fetching all data from database using ajax request. Please check my code and correct me.
I am referring "http://ift.tt/1GoqM6J" and "https://datatables.net/"
BookingController.php
public function index()
{
return view('backend.bookings'/*, ['bookingDetails' => $bookings]*/);
}
public function dataTables(Request $request)
{
$bookings = Booking::where('is_delete', 0)
->get();
// Functionality for laravel datatables
$bookingDetails = Datatables::collection($bookings)
->addColumn('action', function ($bookings) {
return '<a href="/bookings/'.$bookings->_id.'" class="btn btn-xs btn-danger deleteEvent" data-id="'.$bookings->_id.'"><i class="glyphicon glyphicon-trash"></i> Delete</a>';
})
->make(true);
return $bookingDetails;
}
web.php
/* Listing bookings */
Route::get('/bookings', 'BookingController@index');
/* Show datatable page */
Route::post('/bookings/datatables', 'BookingController@dataTables')->name('bookings.datatables');
booking.js
/* Functionality for data table begin */
var table = $('#dataTable').DataTable({
/*"processing": true,
"serverSide": true,*/
/*"dom": '<"toolbar">frtip',*/
"order": [],
"ajax": {
"type": "POST",
"url": '/admin/bookings/datatables',
"contentType": 'application/json; charset=utf-8',
"data": { "_token": "" }
},
/*"ajax": '/bookings/datatables',*/
"dataType": "jsonp",
"columns": [
{"data": function(data){
return '<input type="checkbox" name="id[]" value="'+ data._id +'" />';
}, "orderable": false, "searchable": false, "name":"_id" },
{"data": function ( data ) {
if(!data.invoice_number){
return '<span class="label label-default">No data</span>'
}
else {
return '<a class="nounderline modalBooking" data-toggle="modal" data-target="#bookingModal_'+ data._id +'" data-modalID="'+ data._id +'">'+data.invoice_number+'</a>';
}
}, "name": "invoice_number"},
{"data": "usrEmail", "name": "usrEmail"},
{"data": "checkin_from", "name": "checkin_from"},
{"data": "reserve_to", "name": "reserve_to"},
{"data": "beds", "name": "beds"},
{"data": "dormitory", "name": "dormitory"},
{"data": "sleeps", "name": "sleeps"},
{"data": "status", "name": "status"},
{"data": "payment_status", "name": "payment_status"},
{"data": "payment_type", "name": "payment_type"},
{"data": "total_prepayment_amount", "name": "total_prepayment_amount"},
{"data": "txid", "name": "txid"},
{"data": "action", "name": "action", "orderable": false, "searchable": false}
],
"columnDefs": [{
"defaultContent": "-",
"targets": "_all"
}],
});
$('#dataTable tfoot th').each( function () {
var title = $(this).text();
$(this).html( '<input type="text" placeholder="Search ' + title + '"/>' );
});
from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2twHNhy
via IFTTT
Aucun commentaire:
Enregistrer un commentaire