Yajra 数据表导出所有记录

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

我在 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>
export-to-csv laravel-9 export-to-pdf yajra-datatable
1个回答
0
投票

我知道已经晚了,但也许会对某人有所帮助。只要数据不是那么多,就做

serverSide: false
然后你就可以开始了。我刚刚这样做了并且它正在工作。 唯一的问题是性能问题。

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