我在 laravel 9 中使用 yajra Datatable。我集成了它们的按钮,例如:复制、csv、excel、pdf、打印。 当我想导出/打印时,它只导出仅对表可见的记录(10 条记录)。 但我也想导出所有分页记录。我该怎么做?你能给我任何解决方案吗?
我的控制器,
public function index(Request $request){
if($request->ajax()){
$data = YajraDataTable::select('id','name','email','phone')->get();
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" class="btn btn-primary btn-sm">Edit</a>';
return $btn;
})
->rawColumns(['action'])
->make(true);
}
return view('admin.yajra.index');
}
我的刀片文件,
<script type="text/javascript">
$(function () {
var table = $('#user_datatable').DataTable({
processing: true,
serverSide: true,
responsive: true,
autoWidth:false,
ajax: "{{ route('yajra.datatable') }}",
columns: [
{ data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false, searchable: false },
{data: 'name', name: 'name'},
{data: 'email', name: 'email'},
{data: 'phone', name: 'phone'},
{data: 'action', name: 'action', orderable: false, searchable: false},
],
dom: 'lBfrtip',
buttons: [
{ extend: 'copy', exportOptions: { modifier: { page: 'all', search: 'none' } } },
{ extend: 'excel', exportOptions: { modifier: { page: 'all', search: 'none' } } },
{ extend: 'csv', exportOptions: { modifier: { page: 'all', search: 'none' } } },
{ extend: 'pdf', exportOptions: { modifier: { page: 'all', search: 'none' } } },
{ extend: 'print', exportOptions: { modifier: { page: 'all', search: 'none' } } },
{ extend: 'colvis', exportOptions: { modifier: { page: 'all', search: 'none' } } },
],
"lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, 'All'] ]
});
});
</script>
我知道已经晚了,但也许会对某人有所帮助。只要数据不是那么多,就做
serverSide: false
然后你就可以开始了。我刚刚这样做了并且它正在工作。
唯一的问题是性能问题。