前提・実現したいこと
服の管理アプリを作っています。
そこで服の画像を投稿し、表示させたい。
発生している問題・エラーメッセージ
上記のように正しく画像が表示されません
該当のソースコード
ClothController.php
/** * 服一覧を表示 * * @return view */ public function getClothShow(Request $request) { // Clothモデルのデータを取得 $clothes = $request->user()->clothes; return view('cloth.list',compact('clothes')); } /** * 服を追加する * * @return view */ public function exeClothAdd(ClothRequest $request) { \DB::beginTransaction(); try{ //フォームから送られてきたものを受け取る $cloth=new Cloth; $cloth->category=$request->category; $cloth->name=$request->name; $cloth->size=$request->size; $cloth->brand=$request->brand; $cloth->buy_date=$request->buy_date; $cloth->price=$request->price; //画像をpublicに保存 $filename=$request->file('image')->store('public'); // 保存するファイル名からpublicを除外 $cloth->image=str_replace('public/','',$filename); //ログイン者のuse_idを代入 $cloth->user_id=$request->user()->id; //データに登録 $cloth->save(); \DB::commit(); }catch(\Throwable $e) { \DB::rollback(); abort(500); } \Session::flash('err_msg','アイテムを追加しました'); return redirect(route('show_cloth')); }
一覧表示用のview
list.blade.php
@foreach($clothes as $cloth) <tr> <th scope="row"><img src="{{ asset('/storage/'.$cloth->image_file)}}"></th> <td>{{$cloth->category}}</td> <td>{{$cloth->name}}</td> <td>{{$cloth->category}}</td> <td>{{$cloth->size}}</td> <td> <a href="/cloth/{{$cloth->id}}" class="btn btn-primary btn-sm">詳細</a> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#edit_clothes{{$cloth->id}}">編集</button> <tr> @endforeach
データ送信用フォームのview
<div class="container"> <!-- モーダルを開くボタン・リンク --> <div class="container"> <div class="row my-3"> <h1>モーダルを開く</h1> </div> <div class="row mb-5"> <div class="col-2"> <button type="button" class="btn btn-primary mb-12" data-toggle="modal" data-target="#add_clothes">ボタンで開く</button> </div> </div> </div> </div> <!-- ボタン・リンククリック後に表示される画面の内容 --> <div class="modal fade" id="add_clothes" tabindex="-1" role="dialog" aria-labelledby="basicModal" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4>新しく服を追加する</h4> </div> <div class="modal-body"> <form method="post" action="{{route('add_cloth')}}" enctype="multipart/form-data"> @csrf <div class="form-group"> <label for="category">カテゴリー:</label> <select class="form-control" id="category" name="category"> <option>トップス</option> <option>ジャケット/アウター</option> <option>パンツ</option> <option>スカート</option> <option>ワンピース</option> <option>スーツ/ネクタイ</option> <option>バッグ</option> <option>シューズ</option> <option>帽子</option> <option>アクセサリー</option> </select> <!-- バリデーションの受け取り --> @if($errors->has('category')) <div class="text-danger">{{$errors->first('category')}}</div> @endif </div> <div class="form-group"> <label for="name">名前:</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="size">サイズ:</label> <select class="form-control" id="size" name="size"> <option>XS</option> <option>S</option> <option>M</option> <option>L</option> <option>XL</option> <option>XXL</option> </select> </div> <div class="form-group"> <label for="brand">ブランド:</label> <input type="text" class="form-control" id="brand" name="brand"> </div> <div class="form-group"> <label for="brand">購入日:</label> <input type="date" class="form-control" id="buy_date" name="buy_date"> </div> <div class="form-group"> <label for="price">価格:</label> <input type="number" class="form-control" id="price" name="price"> </div> <div class="form-group"> <label for="image">画像:</label> <input type="file" class="form-control" id="image" name="image"> </div> <button type="submit" class="btn btn-primary">追加する</button> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">閉じる</button> <button type="button" class="btn btn-danger">削除</button> </div> </div> </div> </div>
試したこと
storage/app/publicに画像ファイルが.jpegで追加されていることを確認
フォルダの共有とアクセス権を「everyone 読み書き可」に設定
補足情報(FW/ツールのバージョンなど)
画像投稿機能実装にあたって参考にしたサイト
https://note.com/code82/n/n5f5300822007
laravel6
回答1件
あなたの回答
tips
プレビュー