6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Creating default object from empty valueの解決方法

Posted at

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とエラーが出ました。
下記が今回の原因のコントローラーです。

app/Http/Controllers/GameController.php
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
未定義の変数にプロパティを追加すると発生するのだそうです。

定義していない場所を探して見つけました。

app/Http/Controllers/GameController.php
$post->image_path = Storage::disk('s3')->url($path);

上記の部分ですが、その上で$game = new Game();としているのになぜか$postになっています。
これは記述をした際に参考にした記事のまんま何も考えずにコピペしたからこうなっています。
理解できていないのでおきたエラーでした。

app/Http/Controllers/GameController.php
$game->image_path = Storage::disk('s3')->url($path);

$gameと直して解決です。

このエラーはスペルミスとか、単数形か複数形かの書き間違いでもよくおきるみたいなので
勉強になりました。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?