DT_Row_Index 在 Yajra 数据表中找不到
DT_Row_Index not found in Yajra Datatable
我正在使用 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 column not found 的错误,因为默认情况下第一列应用了顺序,我们知道 addIndexColumn 将额外的数据添加到返回的 JSON 但 DT_Row_Index 是数据库中不存在 table.
但是当我把它改成这个时,它工作正常。
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。
这是因为data-table试图找到DT_Row_Index进行搜索和排序。如果您添加了此 DT_Row_Index,那么您应该禁用对此列的搜索和排序。
如果您不想搜索和排序,那么这段代码应该可以帮助您。
在 data-table 初始化时将此代码添加到您的 JavaScript。
aoColumnDefs = [{'bSortable': false, 'aTargets': [0]},{'bSearchable': false, 'aTargets': [0]}];
我正在使用 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 column not found 的错误,因为默认情况下第一列应用了顺序,我们知道 addIndexColumn 将额外的数据添加到返回的 JSON 但 DT_Row_Index 是数据库中不存在 table.
但是当我把它改成这个时,它工作正常。
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。
这是因为data-table试图找到DT_Row_Index进行搜索和排序。如果您添加了此 DT_Row_Index,那么您应该禁用对此列的搜索和排序。 如果您不想搜索和排序,那么这段代码应该可以帮助您。 在 data-table 初始化时将此代码添加到您的 JavaScript。
aoColumnDefs = [{'bSortable': false, 'aTargets': [0]},{'bSearchable': false, 'aTargets': [0]}];