我正在使用 laravel-nova
在一个资源上,我正在使用 Image
field :
use Laravel\Nova\Fields\Image;
Image::make('Top Image', 'hero_image')
->help('Upload an image to display as hero')
->disk('local')
->maxWidth(400)
->prunable()
->rules('required')
->hideFromIndex(),
到目前为止一切顺利,但由于它是必需的,每次我想编辑资源时我都必须上传(相同的)图像,这有点烦人,我不想让它不需要。
那么,有没有办法解决这个问题?
最佳答案
首先,您希望仅在创建时才需要它,因此您应该使用 ->creationRules('required')
而不是 ->rules('required')
.
但是接下来的问题是用户可以删除照片,并保存没有图像的资源。
要解决此问题,您只需使用 ->deletable(false)
禁用字段上的删除功能。 .
Image::make('Top Image', 'hero_image')
->help('Upload an image to display as hero')
->disk('local')
->maxWidth(400)
->prunable()
->creationRules('required')
->deletable(false)
->hideFromIndex(),
这将允许您更新您的资源,而不必每次都上传图像。并且用户只能用另一个图像替换原始图像。
关于php - Laravel Nova 每次编辑都需要上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56888917/