Я пытаюсь выполнить расширенный поиск, используя laratables. Тем не менее, это не похоже на работу ...
У меня есть 15K + строк, которые необходимо загрузить, и поиск в реальном времени, который фильтрует по столбцу.
Пример:
У меня есть метод контроллера, который вызывается с URL и возвращает Laratables::recordsOf(Customer::class)
. Теперь у меня есть следующий код в моем интерфейсе (js);
$('#m_table_1 thead tr').clone(true).appendTo('#m_table_1 thead');
$('#m_table_1 thead tr:eq(1) th').not(":last").each(function(i) {
let title = $(this).text();
$(this).parent().removeClass('sorting')
$(this).html('<input type="text" class="form-control" placeholder="Zoeken op '+title+'" />');
});
$('#m_table_1').DataTable({
ajax: '/customers/ajax/get',
iDisplayLength: 50,
destroy: true,
paging: true,
serverSide: true,
columns: [
{name: 'name'},
{name: 'customerType.name'},
{name: 'address'},
{name: 'zipcode'},
{name: 'city'},
{name: 'vatnumber'},
{name: 'action', orderable: false, searchable: false},
]
});
Однако поиск не работает вообще ... Когда я просто нажимаю на вход, порядок переворачивается, даже если я удалил класс поиска, он (я думаю) каким-то образом снова присоединяется к заголовку.
В моей модели Customer
у меня есть следующий фильтр:
public static function laratablesSearchName($query, $searchValue)
{
return $query->orWhere('name', 'like', '%'. $searchValue. '%')
->orWhere('address', 'like', '%'. $searchValue. '%')
->orWhere('zipcode', 'like', '%'. $searchValue. '%')
->orWhere('country', 'like', '%'. $searchValue. '%')
->orWhere('vatnumber', 'like', '%'. $searchValue. '%')
;
}
Но я не думаю, что это много значит ...
Кто-то, кто может мне помочь с этим?
Цель:
Загрузить большой набор данных как можно быстрее и проведите оперативный поиск внутри набора данных.