ralphmorris/exporter

将模型集合导出为csv文件

1.0.2 2019-10-19 06:33 UTC

This package is auto-updated.

Last update: 2024-09-19 17:21:12 UTC


README

Exporter 是一个Laravel的包,它提供了一种简单的csv导出方式,可以将任何模型集合导出。

安装

composer require ralphmorris/exporter

用法

在你的控制器中使用

use RalphMorris\Exporter\Exporter;

然后在你的方法中,一个简单的调用可能如下所示

public function export()
{
    $users = User::get();

    $exporter = new Exporter;

    return $exporter->exportToCsv($users);
}

你也可以通过提供第二个参数来指定文件名。

return $exporter->exportToCsv($users, 'my-file-name.csv');

指定要导出的列

如果你只想从模型中导出某些列,只需在模型类中包含 ExportableColumnsTrait 特性,并定义一个受保护的属性 $exportableColumns,它是一个包含你希望导出的字段的数组。

例如

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use RalphMorris\Exporter\ExportableColumnsTrait;

class User extends Model
{
    use ExportableColumnsTrait;

	/**
	 * The columns that are exportable to CSV
	 * 
	 * @var array
	 */
    protected $exportableColumns = [
        'name',
        'email',
    ];

然后在你的查询中,像以下示例一样调用查询范围 exportableColumns()。

public function export()
{
    $users = User::exportableColumns()->get();

    $exporter = new Exporter;

    return $exporter->exportToCsv($users);
}