Глобальный поиск Yajra Datatable не работает.
Код контроллера
public function getTable() {
$query = Customer::query();
return Datatables::of($query)
->addColumn('name', function ($query) {
return "$query->name";
})
->addColumn('number', function ($query) {
return "$query->number";
})
->addColumn('category', function ($query) {
return "$query->category";
})
->addColumn('customer_fields', function ($query) {
return "asd";
})
->addColumn('address', function ($query) {
return "".customerAddressFormatHelper($query -> address, $query -> location_name)."";
})
->addColumn('created_at', function ($query) {
return "$query->created_at";
})
->addColumn('action', function ($query) {
return "<a href='".route('customers.show', $query -> id)."' class='btn btn-primary'><i class='fa fa-eye'></i> </a>";
})
->escapeColumns(['action'])
->make(true);
}
Код JS
$(document).ready(function() {
$('#customer_table').DataTable( {
dom: 'Bfrtip',
buttons: [
'print',
'copyHtml5',
'excelHtml5',
'csvHtml5',
'pdfHtml5'
],
processing: true,
serverSide: true,
ajax: '{{ route('customers.table') }}',
columns: [
{data: 'name', name: 'name'},
{data: 'number', name: 'number'},
{data: 'category', name: 'category'},
{data: 'customer_fields', name: 'customer_fields'},
{data: 'address', name: 'address'},
{data: 'created_at', name: 'created_at'},
{data: 'action', name: 'action'},
]
} );
} );
Все работает правильно без ошибок или чего-либо, но проблема в том, что Глобальный поиск всегда возвращайте одинаковое количество результатов на вкладке сети.
Что я пробовал:
Я пытался заменить $query = Customer::query();
код с $query = Customer::all();
это работает отлично, и поиск работает отлично ..
Проблема после того, как я добавил all()
Метод стал очень-очень медленным, потому что я использую коллекции, а не конструктор запросов.
Задача ещё не решена.
Других решений пока нет …