画像をアップロードするフォームを作成し、画像のデータ(名前、ファイルの種類、サイズ)をDBに保存したいと考えています。
環境は整っていまして、テーブルなども作成済みです。
いざ、アップロードするとこのようなエラーが表示されます。
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null (SQL: insert into images
(name
, type
, size
) values (, , ))
※名前をname,種類をtype,サイズをsizeとしました。
コントローラの記述が間違っているように思うのですが、初心者で手探りのため改善点がいまいちわかりません。
ご指摘お願い致します。
public function upload(Request $request) { $this->validate($request, [ 'image' => [ // 必須 'required', // アップロードされたファイルであること 'file', // 画像ファイルであること 'image', // MIMEタイプを指定 'mimes:jpg,jpeg,png', ] ]); if ($request->file('image')->isValid([])) { $image = new Image(); $image->name = $request->name; $image->type = $request->type; $image->size = $request->size; $image->save(); viewの記述はこちらになります。 <form method="POST" action="{{action('TestController@upload')}}" enctype="multipart/form-data" > <label for="image">画像ファイル:</label> <input type="file" class="form-control" name="image"> <br> <hr> {{ csrf_field() }} <button class="btn btn-success"> Upload </button> </form>
回答2件
あなたの回答
tips
プレビュー