我目前正在使用该包进行服务器端渲染。但是,我遇到了排序和排序功能的问题。从数据库检索到的数据完全按原样显示在数据表中,当我单击标题箭头或将“order:[[0, 'asc']]”添加到数据表配置时,数据表中没有任何变化排序行为。
我的后端逻辑:
$filter = 'bankStatement_amount > 100'
$query = BankStatement::whereRaw($filter);
return Datatables::of($query)
->addColumn('action', function ($statement) {
return '<input id="bs_id_' . $statement->bankStatement_id . '" name="bs_id_' . $statement->bankStatement_id . '" type="hidden" value="' . $statement->bankStatement_id . '" />
<a class="btn btn-sm btn-icon btn-bg-light btn-icon-danger" onclick="loadJsComp('.$statement->bankStatement_id.')" href="#"><i class="flaticon-eye text-info"></i></a>
';
})
->addColumn('bankStatement_dateVal', function ($statement) {
return date('d-M-Y', strtotime($statement->bankStatement_dateVal));
})
->addColumn('bankStatement_amount', function($statement) {
return $this->formatAmount($statement->bankStatement_amount);
})
->addColumn('bankStatement_resp', function($statement) {
return $statement->bankStatement_resp;
})
->addcolumn('bankStatement_desc_azurreo', function($statement) {
return nl2br($statement->bankStatement_desc_azurreo);
})
->addcolumn('bankStatement_account', function($statement) {
return $statement->bankStatement_account;
})
->addcolumn('bankStatement_ref', function($statement) {
return $statement->bankStatement_ref;
})->addcolumn('bankStatement_id', function($statement) {
return $statement->bankStatement_id;
})
->toJson();
我的前端逻辑:
let dataTable = $('#bankStatementList').DataTable({
processing: true,
serverSide: true,
"order": [[0, 'desc']],
columnDefs: [
{"width": "14%", "targets": 6},
{"width": "11%", "targets": 4},
{"width": "14%", "targets": 0},
],
ajax: {
url: "{{ route('getReconciliationsList') }}",
data: function (d) {
// d.search = $('#search').val();
d.reconYear = $('#reconYear').val();
d.day_month = encodeURIComponent($('#day_month').val());
d.bankStatement_account = encodeURIComponent($('#bankStatement_account').val());
d.bankStatement_resp = encodeURIComponent($('#bankStatement_resp').val());
d.transaction = encodeURIComponent($('#transaction').val());
d.bankStatement_desc_azurreo = encodeURIComponent($('#bankStatement_desc_azurreo').val());
d.bankStatement_ref = encodeURIComponent($('#bankStatement_ref').val());
d.bankStatement_status = encodeURIComponent($('#status').val());
}
},
columns: [
{ data: 'bankStatement_dateVal', name: 'bankStatement_dateVal'},
{ data: 'bankStatement_account', name: 'bankStatement_account', orderable: true },
{ data: 'bankStatement_desc_azurreo', name: 'bankStatement_desc_azurreo', orderable: true },
{ data: 'bankStatement_amount', name: 'bankStatement_amount', className: 'text-right', orderable: true },
{ data: 'bankStatement_ref', name: 'bankStatement_ref', orderable: true },
{ data: 'bankStatement_resp', name: 'bankStatement_resp', orderable: true },
{ data: 'action', name: 'action', orderable: false, searchable: false },
],
});
操作系统 Win 10。
PHP 版本 8.2.4
Laravel 版本 8
Laravel-数据表版本 9.21
正如创建者在以下帖子中所述:GitHub Issue #2927
addColumn
将禁用该列的搜索和排序功能。
filterColumn
和 orderColumn
,然后在 SQL 级别实现计算列值搜索。