フォームで画像を登録したところDB上でNULLになってしまう。それを画像が保存されるようにしたい

実現したいこと

画像を追加してDB上に画像を表示させたい。

発生している問題・分からないこと

入力フォームから画像を選択して登録ボタンを押す。
DB上で確認するとNULLになっていて、エラーなどは発生していない。

エラーメッセージ

error

1エラーメッセージは出ていない。

該当のソースコード

php(View)

1<form action="{{ route('curriculum_store') }}" method="POST" enctype="multipart/form-data">2 @csrf 3 <div class="form-group">4 <label for="thumbnail_image">サムネイル画像:</label>5 <input type="file" name="thumbnail_image" id="thumbnail_image" accept="image/*">6 </div>7 <br>8 <label for="grade_id">学年:</label>9 <select name="grade_id" id="grade_id">10 @foreach ($grades as $grade)11 <option value="{{ $grade->id }}" {{ request('grade_id') == $grade->id ? 'selected' : '' }}>12 {{ $grade->name }}13 </option>14 @endforeach15 </select>16 <br>17 <!-- aaaaaaaaaaaaaaaaaaa -->18 <label for="title">授業名:</label>19 <input type="text" id="title" name="title">20 <label for="video_url">動画URL:</label>21 <input type="text" id="video_url" name="video_url">22 <label for="description">授業概要:</label>23 <textarea id="description" name="description" rows="4" cols="50"></textarea>24 <label for="alway_delivery_flg">常時公開:</label>25 <input type="checkbox" id="alway_delivery_flg" name="alway_delivery_flg" value="1">26 <input type="submit" value="登録">27 </form>

php(controller)

1public function CurriculumStore(CurriculumsRequest $request)2 {3 $grade = Curriculum::where('grade_id' , $request->input('grade_id'))->first();4 $model = new Curriculum();5 $model->storeCurriculum($grade , $request);6 7 return redirect()->route('curriculum_list');8 }

php(Model)

1public function storeCurriculum($grade , $request)2 {3 //授業データを保存4 $curriculums = new Curriculum();5 $curriculums->title = $request->input('title');6 7 //ここにサムネイル画像を入れる8 // 商品画像を保存9 if ($request->hasFile('thumbnail_image')) {10 return back()->with('error', 'ファイルがアップロードされていません');11 $imagePath = $request->file('thumbnail_image')->store('images', 'public');12 $curriculums->thumbnail = $imagePath;13 }14 15 $curriculums->description = $request->input('description');16 $curriculums->video_url = $request->input('video_url');17 $curriculums->alway_delivery_flg = $request->boolean('alway_delivery_flg');18 $curriculums->grade_id = $request->input('grade_id');19 20 $curriculums->save();21 return $curriculums;22 }

php(Request)

1public function rules()2 {3 return [4 'title' =>'required|max:255',5 'description'=>'max:2000',6 'thumbnail' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',7 'image' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048',8 ];9 }10 public function messages()11 {12 return [13 'title.required' => '授業名は必須項目です。',14 'title.max' => '授業名は255文字以内で入力してください。',15 'description.max' => '授業概要は2000文字以内で入力してください。',16 'thumbnail.image' => '商品画像は画像ファイルを選択してください。',17 'thumbnail.mimes' => '商品画像はjpeg、png、jpg、gif形式の画像ファイルを選択してください。',18 'thumbnail.max' => '商品画像のサイズは2MB以下にしてください。',19 ];20 }

試したこと・調べたこと

上記の詳細・結果

チャットGPTで調べた。
保存先は正しいか
送信ができているかの確認のコードを教えてもらい試したが、エラー

補足

イメージ画像がある位置
public\img\ash-edmonds-fsI-_MRsic0-unsplash.jpg


イメージ説明

イメージ説明

コメントを投稿

0 コメント