画像投稿の簡単なサイトを作っています。
画像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>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/29 14:59