📜  laravel export make 命令 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:33.350000             🧑  作者: Mango

Laravel Export Make 命令 - PHP

简介

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'),
        ];
    }
}

在上面的代码示例中,我们使用了 FromCollectionWithHeadingsWithMapping 接口来描述数据的导出方式。

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 和其他格式,并将其传输到其他应用程序或保存在本地文件中。