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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2434閲覧

laravel 投稿画像の表示ができない

MISIAN-MISIAN

総合スコア73

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/03/29 05:41

画像投稿の簡単なサイトを作っています。

画像uploadした際にstorage/public内に保存されているのは確認できました。
db内のimageカラムにも保存されているの確認できました。

しかし表示ができません。
$php artisan storage:link
コマンドうった際にThe "public/storage" directory already exists.が表示されています。

ご教授お願いいたします。

ファイル名PostContoroller.php public function create(Request $request){ $post = new Post; $form = $request->all(); // 最低限なバリデーション処理です。 $rules = [ 'name' => 'required', 'brand' => 'required', 'image' => 'required|file|image|mimes:jpeg,png,jpg,gif|max:2048', 'user_id' => 'integer|required', ]; $message = [ 'name.required'=> '靴の名前が入力されていません', 'brand.required'=> 'ブランド名が入力されていません', 'image.required' => '靴の写真が入力されていません', 'user_id.integer' => 'System Error', 'user_id.required' => 'System Error', ]; $validator = Validator::make($form, $rules, $message); if($validator->fails()){ return redirect('post/new') ->withErrors($validator) ->withInput(); }else{ unset($form['_token']); $post->name = $request->name; $post->brand = $request->brand; $post->image = $request->image->store('public'); $post->user_id = $request->user()->id; $post->save(); return redirect('/'); } } public function show($id){ $post = Post::find($id); // dd($post);デバックの記載 // return view('posts/show',compact('post')); // return view('posts/show',['post' => Post::find($id)]); return view('posts/show')->with('post',$post); }
ファイル名index.blade.php <div class="holder"> <div class="items-images"> <ul class="images"> @if(count($posts) > 0) @foreach($posts as $post) <li class="image"> <div class="product"> <a class="product-image" href="post/show/{{ $post->id }}"> <div class="product-card"> <span class="product-price">{{ $post->brand }}</span> <img class="product-image-size" src="{ asset (storage/public/{{$post->image}}) }" alt="商品写真"> <div class="product-description"> <span>{{ $post->name }}</span> </div> </div> </a> </div> </li> @endforeach @else <div>投稿記事がありません</div> @endif </ul> </div> </div>

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

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

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

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

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

guest

回答1

0

ベストアンサー

storage/publicは外部から参照出来ないので
php artisan storage:link
でドキュメントルートのpublicディレクトリからシンボリックリンクを貼っています。

なのでそこからのパスをsrc属性に入れて下さい。
cssやjsと同じ階層に(上記コマンドで作成された)storageというディレクトリがあるはずですのでそこを追ってファイルのパスを確認出来ます。

投稿2020/03/29 05:54

masunatt0

総合スコア31

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

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

MISIAN-MISIAN

2020/03/29 14:59

ありがとうございます。 imgタグのコードが違いました。 <img class="product-image-size" src="{{ asset('/storage/'.$post->image) }}" alt="商品写真">
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問