灯丝媒体经理
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