Laravel Nova требует загрузки изображений при каждом редактировании - PullRequest
2 голосов
/ 04 июля 2019

Я использую 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(),

Пока все хорошо, но так как это необходимо, мне приходится загружать (одно и то же) изображение каждый раз, когда я хочу редактировать ресурс, который немного раздражает, и я не хочу, чтобы он не требовался.

Итак, есть ли решение для этого?

1 Ответ

2 голосов
/ 04 июля 2019

Прежде всего, вы хотите сделать это обязательным только при создании, поэтому вы должны использовать ->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(),

Это позволит вам обновлять свой ресурс без необходимости каждый раз загружать изображение. И пользователь сможет заменить исходное изображение только другим.

...