動画投稿機能をつけた簡易的なSNSサイトを作成中です。
先日herokuで公開したのですが、投稿画像やプロフィール画像を表示することができなかったため、
Amazon S3にて画像を管理しようと考えました。
Amazon S3に画像をアップロードするところまでは行きましたがその後viewでの表示がうまく行きません。
画像を表示するにはどのようにすればいいでしょうか?
コントローラー
PostController
1コード 2public function store(Request $request) 3 { 4 //バリデーション 5 $validator = Validator::make($request->all() , ['caption' => 'required|max:255', ]); 6 7 //エラーの場合 8 if ($validator->fails()) 9 { 10 return redirect()->back()->withErrors($validator->errors())->withInput(); 11 } 12 13 // Postモデル作成 14 $post = new Post; 15 $post->caption = $request->caption; 16 $post->user_id = Auth::user()->id; 17 18 $post->save(); 19 20 if($request->photo == null){ 21 return redirect('/'); 22 } 23 24 25 //$request->photo->storeAs('public/post_images', $post->id . '.jpg'); 26 $request->photo->storeAs('public/post_images', $post->id . '.jpg', ['disk' => 's3']); 27 28 29 return redirect('/'); 30 }
view
PHP
1 <div class="card"> 2 <div class="card-header align-items-center d-flex"> 3 <a class="no-text-decoration" href="/users/{{ $post->user->id }}"> 4 @if ($post->user->profile_photo) 5 <img class="post-profile-icon round-img" src="{{ asset('storage/user_images/' . $post->user->profile_photo) }}"/> 6 @else 7 <img class="post-profile-icon round-img" src="{{ asset('/images/blank_profile.png') }}"/> 8 @endif 9 </a> 10 <a class="black-color no-text-decoration" title="{{ $post->user->name }}" href="/users/{{ $post->user->id }}"> 11 <strong>{{ $post->user->name }}</strong> 12 </a> 13 @if ($post->user->id == Auth::user()->id) 14 <a class="ml-auto mx-0 my-auto" rel="nofollow" href="/postsdelete/{{ $post->id }}"> 15 <div class="delete-post-icon"> 16 </div> 17 </a> 18 @endif 19 </div> 20 <span style=" margin-left: 10px; margin-top: 10px; margin-right: 10px; margin-bottom: 5px;">{{ $post->caption }}</span> 21 //画像表示 22 <a href="/users/{{ $post->user->id }}"> 23 <img src="/storage/post_images/{{ $post->id }}.jpg" class="card-img-top" alt="" /> 24 </a>
posttable
1public function up() 2 { 3 Schema::create('posts', function (Blueprint $table) { 4 $table->increments('id'); 5 $table->string('caption'); 6 $table->integer('user_id'); 7 $table->timestamps(); 8 }); 9 } 10
どうかご教授いただければと思います。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー