尝试将Laravel Nova与Spatie Media Library一起使用 . 我创建了上传字段,如下所示:
Image::make('Logo')
->store(function (Request $request, $model) {
$model->addMediaFromRequest('logo')->toMediaCollection('manufacturers');
}),
接缝没问题,但Nova仍然试图将文件名保存到制造商表中的“logo”列 .
用于自定义此字段的原始示例为:
File::make('Attachment')
->store(function (Request $request, $model) {
return [
'attachment' => $request->attachment->store('/', 's3'),
'attachment_name' => $request->attachment->getClientOriginalName(),
'attachment_size' => $request->attachment->getSize(),
];
})
3 回答
我通过在模型上设置一个空的mutator找到了一个解决方法 . 在你的情况下,它将是:
这是我整个实现的一个例子 . 请注意,目前使用Nova 1.0.6时,
preview()
方法无效,它将返回thumbnail()
url .应用/ GalleryItem
应用/诺瓦/ GalleryItem
也许返回一个空数组阻止nova保存名称 .
Nova允许您从回调中返回
true
以指示处理已完成且不应自行设置任何属性 .这是运行回调的代码:
所以无论是
true
还是任何空阵列都会达到同样的效果,但是前人对此感觉更清楚 .