Spatie\MediaLibrary
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
Наследует
Image
* имеет те же возможности
Поле вынесено в отдельный пакет, перед использованием необходимо выполнить установку
composer require visual-ideas/moonshine-spatie-medialibrary
Поле предназначено для работы с пакетом Laravel-medialibrary от Spatie
Прежде чем использовать поле Spatie\MediaLibrary, необходимо убедиться что:
- Пакет spatie/laravel-medialibrary установлен и настроен
- Пакет visual-ideas/moonshine-spatie-medialibrary установлен
- Поле, передаваемое в Spatie\MediaLibrary, добавлено как название коллекции через ->addMediaCollection('Поле')
В модели:
use Spatie\MediaLibrary\HasMedia;use Spatie\MediaLibrary\InteractsWithMedia; class ModelClass extends Model implements HasMedia //... use InteractsWithMedia; //... public function registerMediaCollections(): void { $this->addMediaCollection('cover'); } //...
В MoonShine-ресурсе:
use VI\MoonShineSpatieMediaLibrary\Fields\MediaLibrary; //... MediaLibrary::make('Обложка', 'cover'), //...
По умолчанию, поле работает в режиме одного изображения
use Spatie\MediaLibrary\HasMedia;use Spatie\MediaLibrary\InteractsWithMedia; class ModelClass extends Model implements HasMedia//...use InteractsWithMedia;//...public function registerMediaCollections(): void{ $this->addMediaCollection('cover')->singleFile();}//...
Если вы хотите использовать поле для загрузки нескольких изображений, добавьте к объявлению поля метод ->multiple()
//...MediaLibrary::make('Галерея', 'gallery')->multiple(),//...