Я хотел подсчитать, сколько изображений находится в каталоге хранилища, но кажется, что Storage::Files не находит ни одного из них, я сохранил 4 изображения в storage\app/public\property\*id_of_the_property*, и я уже выполнил php artisan storage:link, и ссылка работает отлично, по крайней мере, на первый взгляд .
Вот мой config\FilesSystems.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
'url' => env('AWS_URL'),
],
],
И мой контроллер:
public function show($id)
{
$show = [];
$directory = 'property/'.$id;
$files = Storage::Files($directory);
$count = count($files);
$show['count'] = $count;
$show['directory'] = $directory;
return $show;
}
Но переменная $show['count'] отображает 0, когда должно быть 4, а Storage::Files ничего не делает, так как $show['directory'] показывает «свойство / 1», а 1 - это идентификатор, с которым я тестирую. Что мне не хватает?
я пробовал использовать:
$directory = Storage::url('property/'.$id);
/* Result "/storage/property/1" */
$directory = Storage::url('app/public/property/'.$id);
/* Result "/storage/app/public/property/1" */
или
$directory = Storage_path('property\\'.$id);
/* Result "D:\\xampp\\htdocs\\www\\APP\\storage\\property\\1" */
$directory = Storage_path('app/public/property/'.$id);
/* Result "D:\\xampp\\htdocs\\www\\APP\\storage\\app\/public\\property\\1" */
но тоже безуспешно, счет по-прежнему равен 0.
Спасибо вам за помощь.






вы можете использовать файловый фасад
use Illuminate\Support\Facades\File;
...
$images = File::allFiles(storage_path('app/public/property')); // this is recursive
или
$images = File::files(storage_path('app/public/property/'.$id)); // this is NOT recursive
Используйте public_path ($ directory); для этого
Пробовал и не работает; счетчик все еще на 0
Уже пробовал безуспешно. на самом деле он делает эту ошибку: «preg_match () ожидает, что параметр 2 будет строкой, заданным массивом»