rikless / xporter
CSV包装器,用于导出eloquent查询结果
2.0.2
2022-01-04 09:00 UTC
Requires
- laravel/framework: >=5.2.45
- league/csv: 9.*
Requires (Dev)
- phpunit/phpunit: 4.0.*
README
Xporter是一个CSV包装器,允许您使用league/csv包从Laravel应用程序中导出Eloquent查询结果。借助Laravel的Xporter类,您可以创建可导出的模式,这些模式可以轻松修改和重复使用。
文档
安装
运行
composer require rikless/xporter:1.*
示例用法
创建一个简单的类,您可以在应用程序的任何地方放置所有的导出参数。《App\Exports》可能是一个不错的选择,从这里开始。您需要扩展《Rikless\Xporter\Exportable》类。
现在完成《convert()`》、《query()`方法和《xportable》、《rootModel》属性。
您必须使用《convert()`方法来转换您的数据,并添加来自关系的数据。
在您的查询方法中,您只需要实例化您的模型并添加您的查询。它可以是控制器中的《Request》对象。请注意,在您的查询中不要使用《get()`或《all()`方法,因为该包将分块结果。这意味着它需要一个《Illuminate\Database\Eloquent\Builder》对象。
<?php namespace App\Exports; use Rikless\Xporter\Exportable; use Carbon\Carbon; use Illuminate\Http\Request; class UsersExporter extends Exportable { protected $xportable = ['email', 'uuid']; protected $rootModel = \App\User::class; public function convert($item) { return [ 'email' => $item->email, 'uuid' => $item->name, ]; } public function query(Request $request) { return (new $this->rootModel)->where('created_at', '<=', Carbon::now()); } }
现在在您的控制器中
<?php namespace App\Http\Controllers; use App\Exports\UsersExporter; use Illuminate\Http\Request; class TestController extends Controller { public function store(UsersExporter $usersExporter, Request $request) { return $usersExporter->build($request); } }
许可
在《MIT许可证》下许可。