Creating default object from empty valueの解決方法
Laravel初学者です。
オリジナルアプリを作成しているのでその過程を記事にしています。
理解が曖昧なところも多いため、ご指摘等ありましたらご連絡いただければ幸いです。
今回は
Creating default object from empty value
が出たのでその解決方法を記録として残します。
環境
Version | |
---|---|
PHP | 7.4.14 |
Laravel | 8.24.0 |
mysql | 8.0.23 |
docker | 20.10.2 |
docker-compose | 1.27.4 |
エラー発生
投稿を保存する機能の実装中に
Creating default object from empty value
とエラーが出ました。
下記が今回の原因のコントローラーです。
public function store(Request $request)
{
$input = $request->only('name', 'describe', 'image_path');
$game = new Game();
$game->name = $input["name"];
$game->describe = $input["describe"];
$image = $request->file('image');
$path = Storage::disk('s3')->putFile('bgama32070', $image, 'public');
$post->image_path = Storage::disk('s3')->url($path);
$game->save();
return redirect('/');
}
おかしなところがありますね。
これに気づかず2時間くらい無駄にしました...
解決方法
こちらの記事を参考にさせていただきました。
ありがとうございます!
今回のエラーである
Creating default object from empty value
は
未定義の変数にプロパティを追加すると発生する
のだそうです。
定義していない場所を探して見つけました。
$post->image_path = Storage::disk('s3')->url($path);
上記の部分ですが、その上で$game = new Game();
としているのになぜか$post
になっています。
これは記述をした際に参考にした記事のまんま何も考えずにコピペしたからこうなっています。
理解できていないのでおきたエラーでした。
$game->image_path = Storage::disk('s3')->url($path);
$game
と直して解決です。
このエラーはスペルミスとか、単数形か複数形かの書き間違いでもよくおきるみたいなので
勉強になりました。
Author And Source
この問題について(Creating default object from empty valueの解決方法), 我々は、より多くの情報をここで見つけました https://qiita.com/mumucochimu/items/a19dd78edf35e39dffe6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .