##発生しているエラー・問題
画像投稿時に以下のエラーが発生
Illuminate\Validation\Validator::validateO}moeble does not exist.
現在状況
バリデーションの設定を行い、nullでも通るようにするためフォームリクエストを作成したが
画像投稿時にエラーが発生してしまう。(nullの場合は正常に通過)
また、(LostRequest $request) を(Request $request)に戻した際は正常に通過できる
##現在のコード
controller
1public function upload(LostRequest $request) { 2 3 $lost = new Lost; 4 $lost->user_id = $request->user()->id; 5 $lost->pref = $request->pref; 6 $lost->seed = $request->seed; 7 $lost->image = empty($request->image) !== false ? '' :$request->image->getClientOriginalName(); // アップロードされたファイル名のままテーブルに保存 8 $lost->body = $request->body; 9 $lost->save(); 10 11 12 //画像がなければ下記処理のスキップ 13 if (empty($request->image) == false) { 14 if ($request->file('image')->isValid([])) { 15 $file_name = $request->file('image')->getClientOriginalName(); // アップロードされたファイル名の取得 16 $path = $request->image->storeAs('public',$file_name); 17 return view('home')->with('filename', basename($path)); 18 } else { 19 return redirect() 20 ->back() 21 ->withInput() 22 ->withErrors(); 23 } 24 } 25 return view('home'); 26 }
LostRequest
1<?php 2 3namespace App\Http\Requests; 4 5use Illuminate\Foundation\Http\FormRequest; 6 7class LostRequest extends FormRequest 8{ 9 /** 10 * Determine if the user is authorized to make this request. 11 * 12 * @return bool 13 */ 14 public function authorize() 15 { 16 return true; 17 } 18 19 /** 20 * Get the validation rules that apply to the request. 21 * 22 * @return array 23 */ 24 public function rules() 25 { 26 return [ 27 'seed' => 'required', 28 'pref' => 'required', 29 'image' => 'nullable|file|image|mime:jpg,jpeg,png', 30 'body' => 'nullable', 31 ]; 32 } 33} 34
form
1<form action="/size" method="POST" enctype="multipart/form-data"> 2 3 <!-- アップロードした画像。なければ表示しない --> 4 @isset ($filename) 5 <div> 6 <img src="{{ asset('storage/' . $filename) }}"> 7 </div> 8 @endisset 9 10 <div class='select_seed'> 11 @yield('seed_list') 12 </div> 13 <div class='form-data'> 14 <div class="pref"> 15 16 17 </div> 18 </div> 19 20 <div class='form_datas'> 21 <h2>写真/詳細を投稿する</h2> 22 <label><input name='image' class='hidden' type="file" id="selfile"><br><div class='preview' id="bg"> 23 <h2 class='imagearea_message'>クリックして画像を投稿</h2> 24 </div></label> 25 <textarea class='comment_area' name="body" rows="8.5" cols="54" placeholder=' *コメントを入力してください。 特徴/首輪の有無等'></textarea> 26 </div> 27 </div> 28 {{ csrf_field() }} 29 @if (count($errors) > 0) 30 <div> 31 <ul> 32 @foreach ($errors->all() as $error) 33 <li>{{ $error }}</li> 34 @endforeach 35 </ul> 36 </div> 37 @endif 38 <div class='submit_area'> 39 <input class='submit_button' type=submit value='クリックして情報を保存'> 40 </div> 41 </form>
回答1件
あなたの回答
tips
プレビュー