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()
方法后,它变得非常慢,因为我使用的是集合而不是查询构建器。
答案 0 :(得分:0)
你可以试试这个:
public function getTable() {
$query = Customer::query();
return Datatables::of($query)
->addColumn('customer_fields', function ($query) {
return "asd";
})
->addColumn('address', function ($query) {
return "".customerAddressFormatHelper($query -> address, $query -> location_name)."";
})
->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);
}
让我知道这是否有效。