前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(Laravel)で簡易的なSNSを作っています。
画像投稿機能を実装したのですが、画像を投稿しなかった場合にも以下のように表示されてしまいます
ご教授いただければ幸いです
HTML
1 <p> 2 {{ $post->body }} 3 </p> 4 5 <hr> 6 <a class= "sample" href="/users/{{ $post->user->id }}"> 7 <img src="/storage/post_images/{{ $post->id }}.jpg" class="card-img-bottom"> 8 </a>
ポストコントローラー
PostContoroller
1public function index() 2 { 3 $posts = Post::latest()->get(); 4 5 6 return view('post/index', ['posts' => $posts]); 7 } 8 public function new() 9 { 10 return view('post/new'); 11 12 } 13 14 public function store(Request $request) 15 { 16 //バリデーション 17 $validator = Validator::make($request->all() , ['caption' => 'required|max:255']); 18 19 //エラー 20 if ($validator->fails()) 21 { 22 return redirect()->back()->withErrors($validator->errors())->withInput(); 23 } 24 25 $post = new Post; 26 $post->caption = $request->caption; 27 $post->user_id = Auth::user()->id; 28 29 $post->save(); 30 31 if($request->photo == null){ 32 return redirect('/'); 33 } 34 35 else{ 36 $request->photo->storeAs('public/post_images', $post->id . '.jpg'); 37 38 return redirect('/'); 39 } 40 } 41} 42
試したこと
[PHPでファイルの存在を確認する関数の使い方を現役エンジニアが解説【初心者向け】]
(https://techacademy.jp/magazine/22088)
を参考に下記のコードで画像ファイルがある場合にaタグの中身を表示するようなif文を書いてみたのですが見た目は変わりませんでした
PHP
1 <?php 2 $filename = "/storage/post_images/{{ $post->id }}.jpg"; 3 if (file_exists($filename)) 4 ?> 5 <a class= "sample" href="#"> 6 <img src="/storage/post_images/{{ $post->id }}.jpg" class="card-img-bottom"> 7 </a>
補足情報(FW/ツールのバージョンなど)
Laravel Framework 5.5.48,
PHP 7.2.28
AWS Cloud9
mysql Ver 14.14 Distrib 5.7.26
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/05 16:37