laravel(php)
1public function update($post_id, Request $request) 2 { 3 $params = $request->validate([ 4 'title' => 'required|max:50', 5 'body' => 'required|max:2000', 6 'user_id' => 'required|numeric', 7 'category_id' => 'required|numeric', 8 ]); 9 10 $post = Post::findOrFail($post_id); 11 $post->fill($params)->save(); 12 13 14 $request->validate([ 15 'image' => 'file|image|mimes:png,jpeg' 16 ]); 17 18 $upload_image = $request->file('image'); 19 20 if($upload_image) { 21 //アップロードされた画像を保存する 22 $path = $upload_image->store('uploads',"public"); 23 //画像の保存に成功したらDBに記録する 24 if($path){ 25 $UploadImage = UploadImage::where('post_id', $post_id)->get(); 26 $UploadImage->fill([ 27 'user_id' => $request->user_id, 28 'post_id' => $post_id, 29 "file_name" => $upload_image->getClientOriginalName(), 30 "file_path" => $path 31 ])->save(); 32 } 33 } 34 35 $id = Auth::id(); 36 37 38 return redirect()->route('posts.show', [ 39 'post' => $post, 40 'id' => $id 41 ]); 42 } 43
上記プログラムにおいて
$post->fill($params)->save();
の部分はうまくいくのですが
$UploadImage->fill([
'user_id' => $request->user_id,
'post_id' => $post_id,
"file_name" => $upload_image->getClientOriginalName(),
"file_path" => $path
])->save();
の部分がうまく実行されずデータベースが更新できず
"method illuminate\database\eloquent\collection::fill does not exist."
というエラーが出ます。
どうすれば解決できるかわかる方いらっしゃればご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。