默认排序在 yajra laravel 数据表中不起作用

问题描述 投票:0回答:1

我目前正在使用该包进行服务器端渲染。但是,我遇到了排序和排序功能的问题。从数据库检索到的数据完全按原样显示在数据表中,当我单击标题箭头或将“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

jquery laravel sorting datatable yajra-datatable
1个回答
0
投票

正如创建者在以下帖子中所述:GitHub Issue #2927

使用

addColumn
将禁用该列的搜索和排序功能。

但是,您可以使用

filterColumn
orderColumn
,然后在 SQL 级别实现计算列值搜索。

© www.soinside.com 2019 - 2024. All rights reserved.