Jun 8, 2017
0
Level 2
Datatable - Laravel 5.3 Pagination and Search Not working
I am using Laravel 5.3 and Datatable (Yajra). In the datatable, there is no pagination and all records are displaying. Even when i tried to show only 50 entries etc., Search within the datatable is also not working. Please help. Not sure, what i am missing in the code
My code is below
blade.php
$('#btnGetData').click(function () {
var filters = $('#country_id').val() + '~' + $('#language_id').val() + '~' + $('#frequency_id').val() + '~' + $('#category_id').val() + '~' + $('#subcategory_id').val();
document.cookie = 'bulk_filter=' + filters;
var table = $('#bulk_contents').DataTable({
processing: true,
serverSide: true,
"paging": true,
"searching": true,
"displayStart": 0,
"lengthMenu": [[10, 25, 50,-1], [10, 25, 50,"All"]],
"lengthChange": true,
ajax: '{!! route('cms.contents.get_bulk_contents') !!}',
columns: [
{ data: 'id', name: 'id' },
{ data: 'country_id', name: 'country_id' },
{ data: 'language_id', name: 'language_id' },
{ data: 'frequency_id', name: 'frequency_id' },
{ data: 'category_id', name: 'category_id' },
{ data: 'subcategory_id', name: 'subcategory_id' },
{ data: 'message', name: 'message' },
{ data: 'status', name: 'status' },
{ data: 'created_at', name:'created_at'}
]
});
}
);
controller.php
public function get_bulk_contents(){
$filter = $_COOKIE['bulk_filter'];
unset($_COOKIE['bulk_filter']);
$filters = explode('~', $filter);
$current_user = Sentinel::getUser();
$cms_contents = DB::table('cms_contents')
->join('countries', 'countries.id', '=', 'cms_contents.country_id')
->join('languages', 'languages.id', '=', 'cmd_contents.language_id')
->join('frequencies', 'frequencies.id', '=', 'cms_contents.frequency_id')
->join('categories', 'categories.id', '=', 'cms_contents.category_id')
->join('subcategories', 'subcategories.id', '=', 'cms_contents.subcategory_id')
->where('cms_contents.country_id','=',$filters[0])
->where('cms_contents.language_id','=',$filters[1])
->where('cms_contents.frequency_id','=',$filters[2])
->where('cms_contents.category_id','=', $filters[3])
->where('cms_contents.subcategory_id','=',$filters[4])
->whereNull('cms_contents.deleted_at')
->where('status', '0');
$cms_contents->orderBy('cms_contents.country_id', 'asc')->orderBy('cms_contents.language_id', 'asc')->orderBy('cms_contents.frequency_id', 'asc')->orderBy('cms_contents.category_id', 'asc')->orderBy('cms_contents.subcategory_id', 'asc')
->select('cms_contents.id', 'countries.name as country_id', 'languages.name as language_id', 'frequencies.duration as frequency_id', 'categories.name as category_id', 'subcategories.name as subcategory_id', 'cms_contents.message', 'cms_contents.status as status', 'cms_contents.created_at as created_at', 'cms_contents.is_automated');
return Datatables::of($cms_contents)->make(true);
}
Route
Route::get('/drafts/bulk_publishing_form', array('as' => 'cms_contents.bulk_publishing_form', 'uses' => 'CmsContentsController@bulk_publishing_form'));
Route::get('/drafts/get_bulk_contents', array('as' => 'cms_contents.get_bulk_contents', 'uses' => 'CmsContentsController@get_bulk_contents'));
Please or to participate in this conversation.