feldoe / laravel-export-progress
为您的导出添加进度广播事件
v1.1.7
2024-08-19 12:24 UTC
Requires
- php: ^8.2
- laravel/framework: ^10.0|^11.0
- maatwebsite/excel: ^3.1
Requires (Dev)
- nunomaduro/larastan: ^2.8
- orchestra/testbench: ^8.0
- phpstan/extension-installer: ^1.2.0
README
关于 Laravel 导出进度
示例
final class UsersExport extends AbstractExport implements FromQuery { /** * @param User $user */ public function map($user): array { try { $this->sendProgressEventIfNeeded(); } catch (Exception $exception) { Log::error(__('Failed to send progress event => :message', ['message' => $exception->getMessage()])); } return [ $user->id, $user->username, $user->email, ]; } public function query(): Builder { return User::query(); } }
const startExport = (data) => { exportSystem.start(data.uuid, data.name) } Echo.private(`exports.${this.user.id}`) .listen('.export.progressed', e => { exportSystem.progress( e.uuid, e.type, e.model?.name, e.progress, e.estimated_duration ) }) .listen('.export.completed', e => { exportStore.finish(payload.uuid) notify({ title: tr(`success.${payload.type}`), type: 'valid' }) window.open(payload.url) }) .listen('.export.failed', e => { exportSystem.fail( e.uuid, e.reason.message ) })
许可证
Laravel 导出进度是开源软件,采用MIT 许可协议。