netsells / csvme
一个有观点的库,可以使得导出CSV格式的数据变得极其简单。
1.1.0
2018-09-17 14:36 UTC
Requires
- league/csv: ^8.2
This package is auto-updated.
Last update: 2024-08-28 13:54:15 UTC
README
Csvme是一个有观点的库,利用了league/csv
库。
它是由Netsells团队创建和维护的
安装
使用Composer安装Csvme
。
$ composer require netsells/csvme
用法
基本用法
Csvme始终期望一个对象数组,并且可选地提供一个用于标题行的布局闭包。
$csv = new Csvme(); $csv->withHeader(['ID', 'Total', 'Number of Items', 'Created At']) ->withLayout(function(Order $order) { return [ $order->id, $order->total, $order->items->count(), $order->created_at->format('d-m-Y'), ]; }) ->withItems($orders) ->output();
CSV 编译器
可以使用外部类将CSV的布局卸载到专门的文件中。
$csv = new Csvme(); $csv->output(new OrderExportComposer($orders));
<?php use Netsells\Csvme\Csvme; use Netsells\Csvme\CsvComposer; class OrderExportComposer implements CsvComposer { /** * The orders. * * @var array */ protected $orders; /** * Create a new csv composer. * * @param array $orders * @return void */ public function __construct($orders) { $this->orders = $orders; } /** * Configure the CSV * * @param Csvme $csv * @return void */ public function compose(Csvme $csv) { $csv->withHeader(['ID', 'Total', 'Number of Items', 'Created At']) ->withLayout(function(Order $order) { return [ $order->id, $order->total, $order->items->count(), $order->created_at->format('d-m-Y'), ]; }) ->withItems($this->orders); } }
CORS头
当在API端点中使用Csvme时,您可以使用setCorsHeader()
方法添加Access-Control-Allow-Origin
头。该方法默认允许所有来源,但可以通过以下方式传递特定的来源作为参数。
$csv = new Csvme(); $csv->withHeader(['ID', 'Total', 'Number of Items', 'Created At']) ->withLayout(function(Order $order) { return [ $order->id, $order->total, $order->items->count(), $order->created_at->format('d-m-Y'), ]; }) ->withItems($orders) ->setCorsHeader('https://test.com') ->output();