moh-slimani / media
laravel medialibrary的媒体模型
0.0.16
2024-06-27 02:24 UTC
Requires
- php: ^8.2
- laravel/framework: ^10.44
- spatie/laravel-medialibrary: ^11.4.1
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
README
此包通过提供一种简化的方法来注册和管理Laravel应用程序中的媒体资产,使媒体转换为简单的格式,利用路径生成器提高可读性和组织性,简化了Spatie MediaLibrary的集成。在保持MediaLibrary包所有功能的同时,无缝处理媒体注册。
安装
您可以通过composer安装此包
composer require moh-slimani/media
您必须发布并运行迁移,这将向媒体模型添加软删除
php artisan vendor:publish --tag="media-migrations"
php artisan migrate
更改媒体库配置文件中的media_model
config/media-library.php
... /* * The fully qualified class name of the media model. */ 'media_model' => MohSlimani\Media\Models\Media::class, ...
可选:您可以在媒体库配置文件中更改路径生成器
... /* * The class that contains the strategy for determining a media file's path. */ 'path_generator' => MohSlimani\Media\Helpers\MediaPathGenerator::class, ...
用法
use MohSlimani\Media\Traits\UseMediaModel use MohSlimani\Media\Media use Spatie\MediaLibrary\HasMedia; class User extends Authenticatable implements HasMedia { // you don't need to user InteractsWithMedia use HasApiTokens, HasFactory, Notifiable, UseMediaModel; /** * This array should contain the list of media keys to be registered. * * @var array $files * @example ['photo' => Media::SINGLE_FILE, 'files' => Media::MULTIPLE_FILES] */ protected array $files = [ 'photo' => Media::SINGLE_FILE, 'cv', // Media::SINGLE_FILE is the default 'files' => Media::MULTIPLE_FILES ]; ...
之后,您可以像使用medialibrary包一样添加文件
/** @var File $photo */ $user->addMedia($photo)->toMediaCollection('photo'); // Or use the included function $user->addMediaFiles($photo, 'photo');
addMediaFiles函数用于简化将媒体文件添加到集合的过程。此函数允许您将单个文件添加到指定的集合,并提供保留或删除集合中现有文件的选择。它还将根据当前时间生成一个唯一代码,并将其添加到文件名前。您可以在CHANGELOG中找到有关此和其他更改的更多信息。
您可以通过这种方式获取文件
$user->photo [ "id" => 15, "name" => "IMG_7833", "url" => "http://media.test/storage/Users/1/photo/IMG_7833.jpg", "size" => 249686, "mime" => "image/jpeg", "type" => "image", "created_at" => Illuminate\Support\Carbon @1705898712 {#6527 date: 2024-02-19 00:00:00.0 UTC (+00:00), }, "updated_at" => Illuminate\Support\Carbon @1705898712 {#6782 date: 2024-02-19 00:00:00.0 UTC (+00:00), }, ]
测试
composer test
更新日志
有关最近更改的更多信息,请参阅更新日志。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。