jameslkingsley / nova-media-library
此软件包已被废弃,不再维护。未建议替代软件包。
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 ]);