商品管理システムの作成をしており、DBにアップロードした画像を一覧に表示したいのですが、表示できません。
シンボリックリンクは実行しており、Public\storageに画像の保存もできております。
もちろんDBにもアップロードした画像のパスはあります。
storageの権限もフルアクセスにしてます。
Controller
1 2/** 3 * 商品登録画面を表示する 4 * 5 * @return view 6 */ 7 public function showCreate() 8 { 9 // INNAR JOIN 10 $products = \DB::table('products') 11 ->join('companies','products.company_id','=','companies.id') 12 ->get(); 13 14 return view('create.create', ['products' => $products]); 15 } 16 17/** 18 * 商品を登録する 19 * 20 * @return view 21 */ 22 public function exeStore(ProductRequest $request) 23 { 24 // 商品のデータを受け取る 25 $inputs = $request->all(); 26 27 $image = $request->file('image'); 28 29 // 画像がアップロードされていれば、storageに保存 30 if($request->hasFile('image')){ 31 $path = \Storage::put('/public', $image); 32 $path = explode('/', $path); 33 }else{ 34 $path = null; 35 } 36 37 \DB::beginTransaction(); 38 try { 39 // 商品を登録 40 Product::create($inputs); 41 \DB::commit(); 42 } catch(\Throwable $e) { 43 \DB::rollback(); 44 abort(500); 45 } 46 47 \Session::flash('err_msg', '商品を登録しました。'); 48 return redirect(route('products')); 49 } 50 51
Model
1 2<?php 3 4namespace App\Models; 5 6use Illuminate\Database\Eloquent\Model; 7 8class Product extends Model 9{ 10 //テーブル名 11 protected $table = 'products'; 12 13 // 可変項目 14 protected $fillable = 15 [ 16 'company_id', 17 'product_name', 18 'price', 19 'stock', 20 'comment', 21 'image', 22 ]; 23 24 // Companiesテーブルと関連付ける 25 public function company(){ 26 return $this->belongsTo(Company::class); 27 } 28} 29
CreateBlade
1 2<label for="image">商品画像登録</label> 3 <input type="file" class="form-control-file" name='image' id="image"> 4
ListBlade
1 2<img src="{{ '/storage/' . $product->image }}" class='w-100 mb-3'/> 3
エラー内容
[autoindex:error] [pid 26956:tid 1288] [client ::1:64175] AH01276: Cannot serve directory
##環境
Windows
PHP 7.4.16
MAMP
あなたの回答
tips
プレビュー