MoonShine MoonShine
EN
← All plugins

Moonshine Spatie Medialibrary

Multilingualism

MoonShine Spatie MediaLibrary - это поле для админ-панели MoonShine, которое интегрирует функционал популярного пакета Laravel-MediaLibrary от Spatie, позволяя удобно управлять медиафайлами в админке с поддержкой как одиночных, так и множественных загрузок изображений.

Rating
Downloads
6008
Version
3.0.1
Last updated
23.01.2025
MoonShine version
v2, v3
Github stars
17

Spatie\MediaLibrary field for MoonShine Laravel admin panel

Latest Version on Packagist Total Downloads

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

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');
}
 
//...
}

In the MoonShine:

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();
}
 
//...
}

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(),
 
//...