php - Laravel Nova 每次编辑都需要上传图片

标签 php laravel laravel-nova

我正在使用 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/

相关文章:

php - yii : filter with date is not working after filtering

php - 拉维尔 5.3 : Creating a PostCommentsController for a Blog

authentication - 使用多个用户模型登录 nova 和 laravel

php - 通过在 laravel 中快速单击来防止多次提交表单

php - 如何扩展/修改现有的 Laravel Nova 字段?

1 个资源中的 Laravel Nova 2 模型

php - 使用php对数据库表中的特定行进行计算

php - MySQL/PHP登录系统更改数据库用户?

php - 如何在 gitlab 中使用 php lint 只显示和修改文件?

php - laravel 使用 eloquent 填充选择框和 Blade