mahmoud-m-abadi / excel-export-with-relations
支持多关系的 Laravel Excel 导出
Requires
- maatwebsite/excel: 3.1.x-dev
This package is auto-updated.
Last update: 2024-09-23 20:43:42 UTC
README
本包使用 maatwebsite/excel 来生成 Excel 报告。
安装
要安装包,请复制以下链接。
composer require mahmoud-m-abadi/excel-export-with-relations
要求
- PHP 版本 >= 7.3
- Laravel 8
描述
假设您有一个 User 模型,Post 模型和 Post Comment 模型。User 有多个帖子,每个帖子有多个评论,您想创建一个包含所有关系的 Excel 文件导出报告。
现在您可以使用此包中的以下 Export 类来创建控制器
MahmoudMAbadi\ExcelExportWithRelation\Exports\ExcelExportWithRelations
您要导出的目标模型必须实现 ModelExportableInterface
接口,以便使用此包进行导出。例如:如果您想从 User 模型导出,您需要将 ModelExportableInterface
类添加到 UserModel。您还可以使用 ModelExportableTrait
来创建相关函数或替换为您自己的。
实际上,我已经附带了控制器、模型和路由的示例。您可以检查文件以确保正确执行过程。
控制器示例
<?php namespace MahmoudMAbadi\ExcelExportWithRelation\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use MahmoudMAbadi\ExcelExportWithRelation\Exports\ExcelExportWithRelations; use MahmoudMAbadi\ExcelExportWithRelation\Models\UserExport; class ExcelExportController extends Controller { /** * @param Request $request * @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\BinaryFileResponse */ public function __invoke(Request $request) { return (new ExcelExportWithRelations(new UserExport()))->download('users.xlsx'); } }
您可以在包中检查 UserExport 模型以了解那里都做了什么。
许可证
此包在 MIT 许可下发布。
版权 (c) 2012-2017 Markus Poerschke
特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这种责任是基于合同、侵权或其他方式,源于、涉及或与本软件或软件的使用或其他交易有关。