← All plugins
MoonShine Import/Export Handlers
Import/Export handlers for MoonShine Laravel admin panel. This package provides a flexible system for importing and exporting data with support for custom field definitions, data transformation, and lifecycle events. Easy integration with MoonShine ModelResources allows you to quickly implement import/export functionality in your admin panel.
MoonShine Import/Export Handlers
Documentation
Requirements
- MoonShine 3+
- Laravel 10+
- PHP 8.2+
Installation
composer require moonshine/import-export
composer require moonshine/import-export
composer require moonshine/import-export
composer require moonshine/import-export
composer require moonshine/import-export
Usage
- Add
trait
MoonShine\ImportExport\Traits\ImportExportConcern
and interface
MoonShine\ImportExport\Contracts\HasImportExportContract
to ModelResource
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
}
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
protected function exportFields(): iterable
{
return [
ID::make(),
Position::make(),
Text::make('Name'),
];
}
protected function importFields(): iterable
{
return [
ID::make(),
Text::make('Name'),
];
}
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
protected function exportFields(): iterable
{
return [
ID::make(),
Position::make(),
Text::make('Name'),
];
}
protected function importFields(): iterable
{
return [
ID::make(),
Text::make('Name'),
];
}
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
protected function exportFields(): iterable
{
return [
ID::make(),
Position::make(),
Text::make('Name'),
];
}
protected function importFields(): iterable
{
return [
ID::make(),
Text::make('Name'),
];
}
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
protected function exportFields(): iterable
{
return [
ID::make(),
Position::make(),
Text::make('Name'),
];
}
protected function importFields(): iterable
{
return [
ID::make(),
Text::make('Name'),
];
}
}
/**
* @extends ModelResource<Category>
*/
class CategoryResource extends ModelResource implements HasImportExportContract
{
use ImportExportConcern;
// ...
protected function exportFields(): iterable
{
return [
ID::make(),
Position::make(),
Text::make('Name'),
];
}
protected function importFields(): iterable
{
return [
ID::make(),
Text::make('Name'),
];
}
}
public function beforeImportFilling(array $data): array
{
return $data;
}
public function beforeImported(mixed $item): mixed
{
return $item;
}
public function afterImported(mixed $item): mixed
{
return $item;
}
public function beforeImportFilling(array $data): array
{
return $data;
}
public function beforeImported(mixed $item): mixed
{
return $item;
}
public function afterImported(mixed $item): mixed
{
return $item;
}
public function beforeImportFilling(array $data): array
{
return $data;
}
public function beforeImported(mixed $item): mixed
{
return $item;
}
public function afterImported(mixed $item): mixed
{
return $item;
}
public function beforeImportFilling(array $data): array
{
return $data;
}
public function beforeImported(mixed $item): mixed
{
return $item;
}
public function afterImported(mixed $item): mixed
{
return $item;
}
public function beforeImportFilling(array $data): array
{
return $data;
}
public function beforeImported(mixed $item): mixed
{
return $item;
}
public function afterImported(mixed $item): mixed
{
return $item;
}