← All plugins
Moonshine Spatie Medialibrary
MoonShine Spatie MediaLibrary - это поле для админ-панели MoonShine, которое интегрирует функционал популярного пакета Laravel-MediaLibrary от Spatie, позволяя удобно управлять медиафайлами в админке с поддержкой как одиночных, так и множественных загрузок изображений.
Spatie\MediaLibrary field for MoonShine Laravel admin panel

Compatibility
MoonShine |
Moonshine Spatie Medialibrary |
Currently supported |
>= v1.52 and < v2.0 |
<= v1.2.0 |
no |
>= v2.0 |
>= v2.0.1 |
yes |
>= v3.0 |
>= v3.0.0 |
yes |
Installation
The field is purposed for work with the Laravel-MediaLibrary
package made by Spatie and extends default field
Image
composer require visual-ideas/moonshine-spatie-medialibrary
composer require visual-ideas/moonshine-spatie-medialibrary
composer require visual-ideas/moonshine-spatie-medialibrary
composer require visual-ideas/moonshine-spatie-medialibrary
composer require visual-ideas/moonshine-spatie-medialibrary
Before using the Spatie\MediaLibrary field, make sure that:
- The spatie/laravel-medialibrary package is installed and configured
- The visual-ideas/moonshine-spatie-medialibrary package is installed
- The field passed to Spatie\MediaLibrary is added as the name of the collection via
->addMediaCollection('Field')
In the model:
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover');
}
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover');
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover');
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover');
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover');
}
//...
}
In the MoonShine:
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
MediaLibrary::make('Cover', 'cover'),
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Cover', 'cover'),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Cover', 'cover'),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Cover', 'cover'),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Cover', 'cover'),
//...
By default, the field works in a single image mode
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')->singleFile();
}
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')->singleFile();
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')->singleFile();
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')->singleFile();
}
//...
}
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class ModelClass extends Model implements HasMedia
{
use InteractsWithMedia;
//...
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')->singleFile();
}
//...
}
If you want to use a field to load multiple images, add the ->multiple()
method when declaring the field
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
MediaLibrary::make('Gallery', 'gallery')->multiple(),
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Gallery', 'gallery')->multiple(),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Gallery', 'gallery')->multiple(),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Gallery', 'gallery')->multiple(),
//...
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary;
//...
MediaLibrary::make('Gallery', 'gallery')->multiple(),
//...