jameslkingsley/nova-media-library-field

此包已被放弃,不再维护。没有建议的替代包。

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

1.4.1 2019-01-25 09:50 UTC

This package is auto-updated.

Last update: 2024-04-09 20:43:43 UTC


README

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

此包旨在与Spatie的出色媒体库包一起使用。使用此包,您可以为资源添加一个用于上传单个文件的图片字段,一个用于其他类型的通用文件字段,并将图片字段添加到资源中,以显示所有关联的媒体。

use Kingsley\NovaMediaLibrary\Fields\Image;

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

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

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

当您想要上传不是图片的文件时,可以使用此包附带的基本 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创建媒体。

注册媒体资源

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

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