laravel medialibrary的媒体模型

0.0.16 2024-06-27 02:24 UTC

This package is auto-updated.

Last update: 2024-09-08 13:55:47 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包通过提供一种简化的方法来注册和管理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)。有关更多信息,请参阅许可证文件