前提・実現したいこと
こんにちは、いま私は思い出に残った風景などの画像を投稿サイトを製作中です。
画像選択〜アップロード〜リサイズ〜保存(保存しているか確認)〜表示するという流れで画像登録をしています。
すでに投稿してある(題名とメッセージと画像)を編集するコードを書いています。
文字を書き、差し替える画像をを選択して、編集ボタンを押すと、
一覧ページに移動して'投稿を編集しました'と表示されますが・・・
'subject'と'message'はアップデート出来ていますが、
画像だけがアップデートされません。(画像は差し替える前のままです)
問題解決方法: create, edit.bladeにおまじない「enctype="multipart/form-data」をつける!
該当のソースコード
PostsController
php
1 /** 2 * Edit機能 3 */ 4 public function update(PostRequest $request, $id) 5 { 6 $image_file = ""; //投稿にはあって、編集にはなかったもの 7 $upload_image = $request->file('image_file'); 8 if ($upload_image) { 9 $path = $upload_image->store('uploads', 'public'); 10 if ($path) { 11 Image::make($upload_image->getRealPath())->resize(150, 150)->save(); 12 $image_file = $path; 13 } 14 } 15 $post = Post::findOrFail($id); 16 $post->subject = $request->subject; 17 $post->message = $request->message; 18 $post->name = ""; 19 $post->user_id = Auth::id(); 20 $post->save(); 21 22 return redirect('/act')->with('poststatus', '投稿を編集しました'); 23 }
/** * 投稿機能 */ public function store(PostRequest $request) { $image_file = ""; $upload_image = $request->file('image_file'); if ($upload_image) { $path = $upload_image->store('uploads', 'public'); if ($path) { Image::make($upload_image->getRealPath())->resize(150, 150)->save(); $image_file = $path; } } $post = new Post; $post->subject = $request->subject; $post->message = $request->message; $post->image_file = $image_file; $post->name = ""; $post->user_id = Auth::id(); $post->save(); return redirect('/act')->with('poststatus', '新規投稿しました'); }
回答1件
あなたの回答
tips
プレビュー