jameslkingsley / nova-media-library-field
此包已被放弃,不再维护。没有建议的替代包。
Laravel Nova 管理Spatie媒体库的工具。
1.4.1
2019-01-25 09:50 UTC
Requires
- php: >=7.1.0
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 ]);