在dataTables Laravel中添加csv和excel导出按钮



我只想将csv和excel导出按钮添加到一个数据表中。MyController文件:

public function index(Request $request)
{
$Databaseurl = Route('orders.index');
if ($request->ajax()) {
$orders = Order::all();
return datatables()->of($orders)
->editColumn('price', function ($order) {
return '<div class="text-nowrap text-center">'.number_format($order->price, 0, '.', ',').'</div>';
})
->editColumn('address', function ($order) {
return IlluminateSupportStr::limit($order->address,25);
})
->editColumn('city', function ($order) {
return '<div class="text-center">'.IlluminateSupportStr::limit($order->city,25).'</div>';
})
->addIndexColumn()
->addColumn('action', function($order){
return '<a href="'.route('order.edit',['id' => $order->id]).'" class="text-nowrap btn-sm btn-primary text-center"><i class="far fa-eye"></i> view</a>';
})
->rawColumns(['action','city','price'])
->toJson();
}
return view('order.index',compact('Databaseurl'));
}

和数据表jquery代码:

<script type="text/javascript">
$(function () {
var table = $('.mydatatable').DataTable({
"oLanguage": {
"sUrl": "https://cdn.datatables.net/plug-ins/1.10.19/i18n/Persian.json",
},
"pageLength": 25,
processing: true,
serverSide: true,
ajax: "{{ $Databaseurl }}",
columns: [
{data: 'id', name: 'id'},
{data: 'customer_name', name: 'customer_name'},
{data: 'address', name: 'address', searchable: false},
{data: 'city', name: 'city'},
{data: 'price', name: 'price', searchable: false},
{data: 'created_at', name: 'created_at', searchable: false},
{data: 'action', name: 'action', orderable:false,searchable: false},
],
});
});
</script>

我也看了这个视频,但我不愿意经历更困难的步骤,并在同一个控制器和刀片文件中解决这个问题。因为我只想要一个视图表有解决方案吗?

几天后,我发现了这种方法:首先将此链接添加到您的blode文件:

<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.0.3/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.6.4/js/dataTables.buttons.min.js"></script>

然后将以下代码添加到js数据表代码中:

dom: 'Bfrtip',
buttons: [
'copy', 'excel',
],

最新更新