FilamentPHP용 GUI를 사용하기 쉬운 spatie 미디어 라이브러리를 사용하여 미디어 파일을 관리하세요.
composer require tomatophp/filament-media-manager
이제 미디어 마이그레이션을 게시해야 합니다.
php artisan vendor:publish --provider= " SpatieMediaLibraryMediaLibraryServiceProvider " --tag= " medialibrary-migrations "
패키지를 설치한 후 이 명령을 실행하세요.
php artisan filament-media-manager:install
GUI와 폴더 브라우저를 사용하려면 마지막으로 /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}
하위 폴더 및 미디어 파일이 포함된 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를 확인해 보세요