我们正在新项目中使用数据表,并且由于我们正在处理大量数据,我们正在使用数据表的服务器端处理。但是现在我们正试图弄清楚如何通过datatable从服务器获取所有数据。由于我使用自定义HTTP变量服务器端处理,当我查看返回的数据时,没有来自数据库的值。我怎样才能访问数据?请帮忙。非常感谢。这是我的代码
的javascript:
$('#table-prod-contents').DataTable({
processing: true,
serverSide: true,
ajax: $.fn.dataTable.pipeline( {
url: '{{ url("postproductsdata") }}',
pages: 6000, // number of pages to cache
"data": function ( d ) {
console.log(d);
}
} ),
columns: [
{data: 'id', name: 'id'},
{data: 'category', name: 'category'},
{data: 'pharmaceutical', name: 'pharmaceutical'},
{data: 'description', name: 'description'},
{data: 'type', name: 'type'},
{data: 'unit', name: 'unit'},
{data: 'price', name: 'price'},
{data: 'created_at', name: 'created_at'},
],
});
控制台,日志仅显示下图中显示的数据:
当我查看对象内部时,没有id的值。类似于id:31
Controller.php这样
public function anyData()
{
$conditionTxt = "Medical and Lab Supplies";
$products = Product::where('category', 'ILIKE', '%'.$conditionTxt.'%')
->orderBy('created_at', 'desc')
->get();
return Datatables::of($products)->make(true);
}
答案 0 :(得分:2)
选项ajax.data
允许定义在数据发送之前操作数据的功能。
您可以使用ajax.dataSrc
从服务器访问已接收数据,但是您也使用pipelining,但不允许这样做。
使用drawCallback
选项和ajax.json()
API方法来访问检索到的数据或createdRow
选项或xhr.dt
事件。
例如:
$('#table-prod-contents').DataTable({
processing: true,
serverSide: true,
ajax: $.fn.dataTable.pipeline( {
url: '{{ url("postproductsdata") }}',
pages: 6000, // number of pages to cache
"data": function ( d ) {
console.log(d);
}
} ),
drawCallback: function(settings){
var api = this.api();
console.log(api.ajax.json());
},
columns: [
{data: 'id', name: 'id'},
{data: 'category', name: 'category'},
{data: 'pharmaceutical', name: 'pharmaceutical'},
{data: 'description', name: 'description'},
{data: 'type', name: 'type'},
{data: 'unit', name: 'unit'},
{data: 'price', name: 'price'},
{data: 'created_at', name: 'created_at'},
],
});