📅  最后修改于: 2023-12-03 15:32:33.350000             🧑  作者: Mango
Laravel Export Make 命令是 Laravel 框架自带的 Artisan 命令之一,它允许开发人员创建用于导出数据的类。 这些导出类可以将数据转换为 CSV,Excel,JSON 或其他格式,并可用于将数据传输到其他应用程序或将其保存在本地文件中。
创建一个新的导出类, 使用 make:export
命令。
php artisan make:export UsersExport --model=User
上面的代码会在 app/Exports 目录下创建一个新的文件 UsersExport.php 。这个导出类是基于 Eloquent 模型的,将从指定的模型中获取数据,并导出到指定格式。
在导出类中,你需要定义导出字段和如何格式化这些字段。下面是一个示例:
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;
class UsersExport implements FromCollection, WithHeadings, WithMapping
{
protected $model;
public function __construct(User $model)
{
$this->model = $model;
}
public function collection()
{
return $this->model->all();
}
public function headings(): array
{
return [
'ID',
'Name',
'Email',
'Created At',
'Updated At',
];
}
public function map($user): array
{
return [
$user->id,
$user->name,
$user->email,
$user->created_at->format('Y-m-d H:i:s'),
$user->updated_at->format('Y-m-d H:i:s'),
];
}
}
在上面的代码示例中,我们使用了 FromCollection
、WithHeadings
和 WithMapping
接口来描述数据的导出方式。
FromCollection
接口负责返回需要导出的数据集合。
WithHeadings
接口提供了一个 headings
方法,用于设置导出文件的表头。
WithMapping
接口提供了一个 map
方法,用于定义如何格式化列的数据。
在我们的导出类中,我们定义了需要导出的数据、表头和列格式。现在我们需要将数据导出到指定格式。
你可以在控制器的操作中调用 download
方法来导出数据,如下所示:
public function export()
{
return Excel::download(new UsersExport(new User), 'users.xlsx');
}
这使得我们可以导出 Excel 文件。你还可以导出到其他格式,例如 CSV 或 JSON。
return Excel::download(new UsersExport(new User), 'users.csv', \Maatwebsite\Excel\Excel::CSV);
return Excel::download(new UsersExport(new User), 'users.json', \Maatwebsite\Excel\Excel::JSON);
Laravel Export Make 命令是 Laravel 框架中的一个强大工具,可以让程序员快速轻松地创建用于导出数据的类。借助 Laravel Export Make 命令,开发人员可以轻松地将数据转换为 CSV、Excel、JSON 和其他格式,并将其传输到其他应用程序或保存在本地文件中。