Как получить изображения из папки хранения для просмотра в блейд? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь получить доступ к изображениям из папки хранилища для отображения в режиме блэйда.изображения находятся в хранилище / app / photos.

Я запустил команду php artisan storage: ссылка, но пока не получилось показать изображения.

Вот мой домашний контроллер

public function detailPro($id) {
    $products=DB::table('products_photos')
         ->join('products','products_photos.product_id','products.id')
         ->get();
         //dd($products);
    return view('front.product_detail', compact('products'));
}

вот мой detail.blade.php

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{ url('storage/app/photos/'.$product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach

это логика того, как я сохраняю изображения в db

public function store(Request $request)
{
    $product = Product::create($request->all());
    foreach ($request->photos as $photo) {
        $filename = $photo->store('photos');
        ProductsPhoto::create([
            'product_id' => $product->id,
            'filename' => $filename
        ]);
    }
    return 'Upload successful!';
}

изображение не появляется и отображается URLэто "http://127.0.0.1:8000/storage/app/photos/photos/xPNOQQTaTjPaKUClAHOxx7NEjsNLHguhVuAryZEg.jpeg".

Ответы [ 3 ]

1 голос
/ 02 июля 2019

Вы должны проверить это , и вы можете использовать Storage::url('url'), если вы запустили php artisan storage:link

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{  Storage::url($product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach

Измените свой store метод на

public function store(Request $request)
{
    $product = Product::create($request->all());
    foreach ($request->photos as $photo) {
        $filename = $photo->store('public/photos');
        ProductsPhoto::create([
            'product_id' => $product->id,
            'filename' => $filename
        ]);
    }
    return 'Upload successful!';
}
0 голосов
/ 02 июля 2019

на вашем клинке, попробуйте это:

@foreach($products as $product)
   <div class="col-md-6 col-xs-12">
   <div class="thumbnail">
     </div>
     <img src="{{ url('photos/'.$product->filename) }}" style="width:200px;" alt="">
   </div>
@endforeach
0 голосов
/ 02 июля 2019
  1. Использовать публичную конфигурацию файловой системы:
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
  1. Запуск php artisan storage: ссылка
  2. Перемещение фотографий в каталог 'storage / app / public / photos'
  3. Детально.blade.php использовать
<img src="{{ url('/storage/'.$product->filename)}}" style="width:200px;" alt="">

И с тобой все будет в порядке;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...