Laravelを学習し始めた初心者です。
画像アップロードを実装したいのですがエラーが出て手詰まりになりました。
解決策をご教授いただきたいです。よろしくお願いします。
添付ファイルをPOSTすると以下のエラーが発生します。
エラー内容
Trying to get property 'image' of non-object
ファイル添付なしでPOSTするとバリデーションは正常に実行されます。
HTTPヘッダを見ると 500 (Internal Server Error)
になっています。
image
がうまく渡せてないのだろうとは思うのですが、解決策が見つかりません。
以下、該当コードです。
index.blade.php
php:index.blade.php
1@extends('layout') 2@section('title') 3@section('content') 4 5@if($errors->any()) 6 <div class="alert alert-danger"> 7 <ul> 8 @foreach($errors->all() as $error) 9 <li>{{$error}}</li> 10 @endforeach 11 </ul> 12 </div> 13@endif 14<form action="{{route('image.post')}}" method="post" enctype="multipart/form-data"> 15@csrf 16 <div class="form-group"> 17 <h3>本を登録する</h3> 18 <label>本の画像</label> 19 <input type="file" name="image" class="form-control"> 20 </div> 21 <button type="submit" class="btn btn-primary">登録へ進む</button> 22</form>
post.blade.php
<img src="{{ $image }}" width="300" height="300">
BookRequest.php
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class BookRequest extends FormRequest { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'image'=>'required|image|mimes:JPEG,jpeg,PNG,png,JPG,jpg' ]; } }
BooksController.php
public function inputImage(BookRequest $request) { $request = date('YmdHis').$request; $request->image->store('public/images'); return redirect('list.post'); }
route/web.php
Route::post('/', 'BooksController@inputImage')->name('image.post');
足りない情報あれば教えてください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/20 08:23