我使用laravel-nova
,并且在一个资源上使用Image
字段:
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(),
到目前为止一切顺利,但由于它的要求,我必须上传(相同的)图像每次我想编辑的资源,这是有点烦人,我不想使它不需要。
那么,有没有解决办法呢?
3条答案
按热度按时间lyfkaqu11#
首先,您希望仅在创建时需要它,因此应该使用
->creationRules('required')
而不是->rules('required')
。但问题是用户可以删除照片,并保存没有图像的资源。
要解决这个问题,只需使用
->deletable(false)
禁用字段上的删除功能。这将允许你更新你的资源而不必每次都上传一张图片。而且用户只能用另一张图片替换原来的图片。
8dtrkrch2#
我整理出来的这种方式,我试图找到如果我已经得到了图像保存在我的模型第一,然后确定如果我想需要它或没有。
我希望这能帮助其他人。
igetnqfo3#
另一个原因可能是混合内容错误。在我的例子中,我错误地将APP_URL配置为
http
而不是https
,这阻止了图像在编辑视图中加载。