laravel - 在 dataTables Laravel 中添加 csv 和 excel 导出按钮
问题描述
我只想将 csv 和 excel 导出按钮添加到一个数据表中。我的控制器文件:
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 \Illuminate\Support\Str::limit($order->address,25);
})
->editColumn('city', function ($order) {
return '<div class="text-center">'.\Illuminate\Support\Str::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',
],
推荐阅读
- reactjs - 改变语言系统的方向问题
- angular - Angular Firestore 在按钮单击时更新特定文档字段
- java - 在 Eclipse 中向现有的 gui 组件添加功能
- laravel - 在 Docker 容器中运行 Laravel 应用,但 autoload.php 文件不存在
- java - android.app.RemoteServiceException:startForeground 的错误通知
- acumatica - Acumatica 和仪表板参数以及选择器和 PKID
- node.js - 将图像从公共 Docker Hub 拉取到 AWS Elastic Beanstalk 多个容器
- c++ - 为什么我在使用 STL 列表时不能使用这个回文函数?
- data-science-studio - Dataiku创建教程失败
- json - 如何从我的 React 表单提交中排除一个字段?