Итак, рассмотрите следующую конфигурацию:
'registry_logo' => [
'driver' => 'local',
'root' => storage_path('app/public/registry_logo/'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
Довольно основы c, да, я уже выполнил php artisan storage:link
Итак, как мне сохранить lo go, который загружается?
public function uploadLogo(UploadedFile $file, RegistrySettings $settings): void {
$path = $file->store('registry_logo');
$settings->registry_logo = $path;
$settings->save();
}
Он находится внутри службы, и первый аргумент - $request->registry_logo
, который является файлом (обязательным - поэтому мы можем предположить, что он не равен нулю).
Когда lo go загружен, сгенерированная ссылка выглядит так: http://127.0.0.1:8000/storage/registry_logo/iuKceIG6XC5b8P5YLh3zMRMWbqGaZikaRP6sMWew.png
Так что это нормально, я получаю это через: Storage::disk('registry_logo')->url($registrySettings->registry_logo)])
Примите его не хорошо, давайте посмотрим на два изображения:
Как видите, в связанном хранилище нет папки registry_lo go, что не имеет смысла потому что:
Это там в хранилище. Итак, что происходит? Почему это в хранилище, а не связано должным образом? Я очищал кэш несколько раз, но при загрузке он не создает ссылку registry_lo go на первом изображении.
Иногда, как ни странно, создается папка registry_lo go, но в ней ничего нет. Я испортил конфиг? Я храню его правильно, я знаю, что laravel нравится $request->file('file')->store('disk_name')
, но этот способ также работает для загрузки файла, он просто не связывается должным образом, и мне интересно, это я - возможно, но где я могу посмотреть?
Мысли