moonshine/import-export

Import/Export Handlers for MoonShine

Installs: 32 872

Dependents: 2

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 3

Open Issues: 0

pkg:composer/moonshine/import-export

2.0.0 2025-10-25 17:22 UTC

This package is auto-updated.

Last update: 2025-11-11 10:04:51 UTC


README

Documentation

Requirements

  • MoonShine 4+
  • Laravel 10+
  • PHP 8.2+

Installation

composer require moonshine/import-export

Usage

  • In ModelResource add the ImportExportConcern trait and implement the HasImportExportContract interface.
use MoonShine\ImportExport\Contracts\HasImportExportContract;
use MoonShine\ImportExport\Traits\ImportExportConcern;

class CategoryResource extends ModelResource implements HasImportExportContract
{
    use ImportExportConcern;
    
    // ...
}
  • Define the fields that will be involved in import and export.
protected function exportFields(): iterable
{
    return [
        ID::make(),
        Position::make(),
        Text::make('Name'),
    ];
}

protected function importFields(): iterable
{
    return [
        ID::make(),
        Text::make('Name'),
    ];
}
  • Import Events.
public function beforeImportFilling(array $data): array
{
    return $data;
}

public function beforeImported(mixed $item): mixed
{
    return $item;
}

public function afterImported(mixed $item): mixed
{
    return $item;
}
  • Queue.
protected function export(): ?Handler
{
    return ExportHandler::make(__('moonshine::ui.export'))
        ->when(
            $this->isExportToCsv(),
            static fn (ExportHandler $handler): ExportHandler => $handler->csv()
        )
        ->queue();
}

protected function import(): ?Handler
{
    return ImportHandler::make(__('moonshine::ui.import'))->queue();
}