DT_Row_Index не найден в Yajra Datatable - PullRequest
0 голосов
/ 06 июля 2018

Я использую Yajra Datatables, это мой php код

$quotes=User::find($id)->quotes();
        return Datatables::of($quotes)
            ->addIndexColumn()
            ->setRowClass(function($quote){
                return $quote->quote_urgent?"table-primary":"";
            })
            ->addColumn("convert","Convert")
            ->addColumn("action",function($quote){
                return "<a href='".URL::to("customer/".$quote->quote_customer_id."/view-quote/".$quote->quote_id)."'>Details</a>";
            })
            ->make(true);

и мой javascript

$(document).ready(function() {
                    $('.datatable').DataTable({
                        processing: true,
                        serverSide: true,
                        buttons:[
                            {extend:'paginate_button',className:'btn btn-primary'}
                        ],
                        pageLength:4000,
                        ajax: '{{ route('CustomerQuoteRecords',$customer->id) }}',
                        columns:[
                            {"data":"DT_Row_Index"},
                            {"data":"quote_id"},
                            {"data":"created_at"},
                            {"data":"quote_received","defaultContent":"-"},
                            {"data":"quote_name"},
                            {"data":"quote_price"},
                            {"data":"convert"},
                            {"data":"action"},
                        ]
                    });
                });

Приведенный выше код выдает ошибку, что столбец DT_Row_Index не найден, поскольку по умолчанию к первому столбцу применен порядок, так как мы знаем, что addIndexColumn добавляет дополнительные данные в возвращаемый JSON, но DT_Row_Index отсутствует в таблице базы данных.

Но когда я изменяю это на это, оно работает правильно.

columns:[
                            {"data":"quote_id"},
                            {"data":"DT_Row_Index"},
                            {"data":"created_at"},
                            {"data":"quote_received","defaultContent":"-"},
                            {"data":"quote_name"},
                            {"data":"quote_price"},
                            {"data":"convert"},
                            {"data":"action"},
                        ]

Но мне нужен DT_Row_Index в первом столбце.

1 Ответ

0 голосов
/ 18 сентября 2018

Это потому, что таблица данных пытается найти DT_Row_Index для поиска и сортировки. Если вы добавили этот DT_Row_Index, вам следует отключить поиск и сортировку для этого столбца. если вы не хотите искать и сортировать, тогда этот код должен вам помочь. Добавьте этот код в свой JavaScript при инициализации таблицы данных.

 aoColumnDefs = [{'bSortable': false, 'aTargets': [0]},{'bSearchable': false, 'aTargets': [0]}];
...