Yajra 数据表全局搜索不起作用。
控制器代码
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()
方法之后它变得非常非常慢,因为我使用的是集合而不是查询生成器。