質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

859閲覧

laravelでデータベースに入れた画像パスを表示したい。

yoheiiii

総合スコア87

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/11/07 11:55

編集2020/11/09 13:17

環境:Windows10,XAMPP,HeidiSQL
データベース:テーブル名:shyouhin カラム:id,name,price,gazou,updated_at,created_at

データベースにはprofiles/ロレックスサブマリーナ.PNGとstorage>app>profilesには画像がしっかり保存
されております。

その画像を表示させたいのですが、上手くいきません。
表示のやり方をご教授頂ければ幸いです。

【コントローラー】

public function shyouhin(Request $request) { $data = new shyouhin(); $data->name = $request->name; $data->price = $request->price; $uploaded_image = $request->file('gazou'); if($request->hasFile('gazou') && $uploaded_image->isValid()) { $file_name = $request->file('gazou')->getClientOriginalName(); $path = $request->file('gazou')->storeAs('profiles',$file_name); } $data->gazou = $path; $data->save(); $validate_rule = [ 'name' => 'required', 'price' => 'required', ]; $this->validate($request,$validate_rule); return view('shyouhin_add',['msg' => '登録完了致しました。']); } public function shyouhinlist(Request $request) { $items =DB::select('select * from shyouhin'); return view('shyouhin_list',['items' => $items]); }

【ブレード】

<!DOCtYPE html> <html> <head> <meta charset="UTF-8"> <title>ショップ</title> </head> <body> 商品一覧<br /> <br /> <table border="2"> <tr> <th>商品</th> <th>価格</th> <th>画像</th> </tr> <form method="post" action="/shop/delete"> @csrf <tr> <td> @foreach($items as $item) <input type="radio" name="id" value="{{$item->id}}"> {{$item->name}}<br /> @endforeach </td> <td> @foreach($items as $item) {{$item->price}}<br /> @endforeach </td> <td> @foreach($items as $item) <img src = "{{$item->gazou}}"><br /> @endforeach </td> </tr> </table> <br /> <input type = "submit" value="削除" id = "id"> <script> var btn = document.getElementById('id'); btn.addEventListener('click',function() { window.confirm('本当に削除しますか?'); }) </script> </form> <button onclick="history.back()">戻る</button> <a href="/top">業務管理システム</a> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/11/07 21:05

データベースに入れたのは画像ではなく画像のパスですよね。 表現調整願います。 あと、インデントとか、DOCtYPE とか個人的にはすごく気になる。
guest

回答2

0

ベストアンサー

「profiles/ロレックスサブマリーナ.PNG」
という文字列で保存されているなら。
http://example.com/test/とかでアクセスされたら
http://example.com/test/profiles/ロレックスサブマリーナ.PNG
を見に行くのではないでしょうか。
URLはLaravelのURLの機能を利用したほうが良いのでは?
シンボリックリンクも利用したほうがいいかもしれません。

※少し古い記事ですが参考まで
Laravelで画像ファイルを保存したい

投稿2020/11/07 21:09

m.ts10806

総合スコア80859

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoheiiii

2020/11/09 13:21

ご教授ありがとうございます。 シンボリックリンクで行おうと思っております。 調べ行いましたが、上手くいきません。 やったこと php artisan storage:link ブレイド変更(画像表示部分を下記に変更) @foreach($items as $item) <img src = "/storage/{{$item->gazou}}"><br /> @endforeach ご指摘頂ければ幸いです。
m.ts10806

2020/11/09 21:25

URLはLaravelのURLの機能を利用したほうが良いのでは? というアドバイスは有効ではなかったのでしょうか。
yoheiiii

2020/11/15 12:59

LaravelのURLの機能のやり方を探していますが 未だ有効そうな情報にたどりついておりません。。。
m.ts10806

2020/11/15 22:24

assetsとかで調べてください。 置き場所含めてご検討を。
guest

0

画像の保存先変更【コントローラー】

$uploaded_image = $request->file('gazou'); if($request->hasFile('gazou') && $uploaded_image->isValid()) { $file_name = $request->file('gazou')->getClientOriginalName(); $path = $request->file('gazou')->storeAs('public/gazou',$file_name); }

画像の呼び出し【ブレード】

@foreach($items as $item) <img src = "{{asset('/gazou/タグホイヤーアクアレーサー.PNG')}}"><br /> @endforeach

※まだ指定した画像しか表示できていないので今後修正していく

投稿2020/11/20 01:13

yoheiiii

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問