themightysapien / medialibrary
基于spatie media package的媒体库。有助于复用上传的媒体。
1.3.12
2023-06-07 15:23 UTC
Requires
- php: ^8.0|^8.1
- illuminate/support: ^9.0|^10.0
- spatie/laravel-medialibrary: ^9.18|^10.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
此包在Spatie Media Library包的基础上增加了可复用的库功能。
功能
- 向库中添加媒体
- 使用库中的媒体
- 通过库添加媒体
- 清空库
安装
您可以通过composer安装此包
composer require themightysapien/medialibrary # publish config and migrations php artisan vendor:publish --provider="Themightysapien\MediaLibrary\MediaLibraryServiceProvider" --tag="config" --tag="migrations" # Check config files for any modifications then run php artisan migrate
准备您的模型
只需在spatie的模型设置上添加InteractsWithMediaLibrary特质。
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Themightysapien\MediaLibrary\Traits\InteractsWithMediaLibrary; class YourModel extends Model implements HasMedia { use InteractsWithMedia; use InteractsWithMediaLibrary; }
用法
向库中添加媒体
use Themightysapien\MediaLibrary\Facades\MediaLibrary; $media = MediaLibrary::open($user_id)->addMedia($file);
通过库关联模型文件。
这将首先将文件添加到库中,然后将媒体关联到模型。
$model->addMediaThroughLibrary($file, $user_id) // chain through any spatie's File Adder functions ->toMediaCollection();
关联库媒体到模型。
$model->addMediaFromLibrary($media); // chain through any spatie's File Adder functions ->toMediaCollection();
清空库
use Themightysapien\MediaLibrary\Facades\MediaLibrary; MediaLibrary::clear($user_id);
获取库媒体集合
use Themightysapien\MediaLibrary\Facades\MediaLibrary; // All Media MediaLibrary::allMedia($user_id); // Builder MediaLibrary::query($user_id)->limit(5)->lastest()->get();
通过API获取库媒体集合
$response = $this->json('GET', '{PREFIX_FROM_CONFIG}/tsmedialibrary', [ 'name' => 'document', // matches file and name with document 'type' => 'pdf', //matches mime type with pdf 'sort_by' => 'created_at', 'sort_type' => 'DESC', 'per_page' => 10 // default set on config ]); ['items' => $mediaCollection, 'pagination' => $pagination] = $response;
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何安全问题,请通过电子邮件themightysapien@gmail.com而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。
Laravel Package Boilerplate
此包是用Laravel Package Boilerplate生成的。