Управляйте своими медиа-файлами с помощью медиа-библиотеки Spatie с простым в использовании графическим интерфейсом для FilamentPHP.
composer require tomatophp/filament-media-manager
теперь вам нужно опубликовать миграцию медиа
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
после установки пакета запустите эту команду
php artisan filament-media-manager:install
наконец, зарегистрируйте плагин в /app/Providers/Filament/AdminPanelProvider.php
, если вы хотите использовать графический интерфейс и браузер папок.
-> plugin ( TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ())
->schema()
вы можете использовать медиа-менеджер, добавив этот код в свой компонент нити.
use TomatoPHP FilamentMediaManager Form MediaManagerInput ;
public function form ( Form $ form )
{
return $ form -> schema ([
MediaManagerInput :: make ( ' images ' )
-> disk ( ' public ' )
-> schema ([
Forms Components TextInput :: make ( ' title ' )
-> required ()
-> maxLength ( 255 ),
Forms Components TextInput :: make ( ' description ' )
-> required ()
-> maxLength ( 255 ),
]),
]);
}
вы можете добавить собственный предварительный просмотр к выбранному типу в медиа-менеджере, добавив этот код к своему провайдеру
use TomatoPHP FilamentMediaManager Facade FilamentMediaManager ;
use TomatoPHP FilamentMediaManager Services Contracts MediaManagerType ;
public function boot () {
FilamentMediaManager :: register ([
MediaManagerType :: make ( ' .pdf ' )
-> icon ( ' bxs-file-pdf ' )
-> preview ( ' media-manager.pdf ' ),
]);
}
в вашем файле просмотра вы можете использовать его вот так
4 ">
вы можете прикрепить глобальный файл js
или css
к медиаменеджеру, добавив этот код к своему провайдеру
use TomatoPHP FilamentMediaManager Facade FilamentMediaManager ;
use TomatoPHP FilamentMediaManager Services Contracts MediaManagerType ;
public function boot() {
FilamentMediaManager ::register([
MediaManagerType :: make ( ' .pdf ' )
-> js ( ' https://mozilla.github.io/pdf.js/build/pdf.mjs ' ),
-> css ( ' https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.3.136/pdf_viewer.min.css ' ),
-> icon ( ' bxs-file-pdf ' )
-> preview ( ' media-manager.pdf ' ),
]);
}
Обратите внимание, что name
компонента будет совпадать с именем коллекции.
вы можете разрешить создание и управление подпапками в вашем медиа-менеджере в /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowSubFolders ()
)
теперь вы можете разрешить пользователю доступ к выбранной папке и запретить пользователю доступ к папкам друг друга, если папка не является общедоступной в /app/Providers/Filament/AdminPanelProvider.php
-> plugin (
TomatoPHP FilamentMediaManager FilamentMediaManagerPlugin :: make ()
-> allowUserAccess ()
)
теперь в вашей пользовательской модели вы можете использовать эту черту, чтобы разрешить пользователю доступ к выбранной папке
use TomatoPHP FilamentMediaManager Traits InteractsWithMediaFolders ;
class User extends Authenticatable
{
use InteractsWithMediaFolders ;
}
ПРИМЕЧАНИЕ. Не забудьте выполнить миграцию после обновления плагина.
теперь вы можете получить доступ к своим медиафайлам и папкам с помощью API, у вас есть 2 конечных точки
/api/folders
чтобы получить все папки/api/folders/{id}
чтобы получить папку по идентификатору с подпапками и медиафайламичтобы разрешить эту функцию, вам необходимо опубликовать файл конфигурации с помощью этой команды
php artisan vendor:publish --tag= " filament-media-manager-config "
тогда вы можете установить для api.active
значение true
в файле конфигурации
' api ' => [
" active " => true ,
],
вы можете опубликовать файл конфигурации с помощью этой команды
php artisan vendor:publish --tag= " filament-media-manager-config "
вы можете опубликовать файл представлений с помощью этой команды
php artisan vendor:publish --tag= " filament-media-manager-views "
вы можете опубликовать языковой файл с помощью этой команды
php artisan vendor:publish --tag= " filament-media-manager-lang "
вы можете опубликовать файл миграции с помощью этой команды
php artisan vendor:publish --tag= " filament-media-manager-migrations "
Ознакомьтесь с нашим удивительным TomatoPHP