燈絲媒體經理
v1.1.3
使用 spatie 媒體庫和易於使用的 FilamentPHP GUI 管理您的媒體文件
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