jameslkingsley/nova-media-library

此软件包已被废弃,不再维护。未建议替代软件包。

Laravel Nova 的 Spatie 媒体库管理工具。

1.4.1 2019-01-25 09:50 UTC

This package is auto-updated.

Last update: 2024-04-09 20:12:59 UTC


README

注意:请考虑使用 此软件包 替代,它对各种媒体库功能的支持更多,可能更适合您的需求!

此软件包旨在与 Spatie 的出色媒体库软件包 一起使用。使用此软件包,您可以为资源添加单个文件的上传字段、通用文件字段,并为资源添加图像字段以显示所有相关媒体。

use Kingsley\NovaMediaLibrary\Fields\Image;

Image::make('Avatar', 'avatar')
    ->usingConversion('thumb')
    ->preservingOriginal()

在此示例中,我们定义了一个名为 Avatar 的字段,使用 avatar 集合。它还调用 usingConversionthumb 转换设置为要显示的图像(在详细信息和索引中)。其他调用的方法 动态 应用到上传请求 - 这允许您在字段上调用任何媒体库方法。

如果您希望在上传新图像之前删除旧图像,请确保将您的模型媒体集合设置为 单个文件集合

当您想上传非图像文件时,可以使用此软件包附带的基本 File 字段。它的格式与注册 Image 字段相同。

use Kingsley\NovaMediaLibrary\Fields\File;

File::make('Invoice', 'invoice')

这就全部了!其余的配置应在媒体集合本身中完成,例如

public function registerMediaCollections()
{
    $this
        ->addMediaCollection('invoice')
        ->singleFile()
        ->acceptsFile(function (File $file) {
            return $file->mimeType === 'application/pdf';
        });
}

要显示您资源的所有媒体记录,只需添加如下的 Images 字段

use Kingsley\NovaMediaLibrary\Fields\Images;

public function fields(Request $request)
{
    return [
        ...
        Images::make(),
    ];
}

这将自动使用您模型上的 media 属性(这是 HasMediaTrait 添加的)。

注意:您目前无法从 Nova 直接创建媒体。

注册媒体资源

如果您想使用此软件包中包含的媒体资源,您需要在 NovaServiceProviderboot 方法中手动注册它。

Nova::resources([
    \Kingsley\NovaMediaLibrary\Resources\Media::class
]);