【Laravel】local.ERROR: Creating default object from empty value {“exception”:”[object] (ErrorException(code: 0):

【Laravel】local.ERROR: Creating default object from empty value {“exception”:”[object] (ErrorException(code: 0):

【Laravelエラー】local.ERROR: Creating default object from empty value {“exception”:”[object] (ErrorException(code: 0):

追加のパーツ作っていたらこんなエラーが発生し前に進めなくなってしまいました。
Google先生に翻訳をお願いすると『空の値からデフォルトオブジェクトを作成しています』との事。
簡単なことなのに思いのほか時間を使ってしまったので自省の念を込めて備忘録です。

問題が発生していた場所

このミス、気付く人はすぐ気づくんです。
ちなみに私は所要時間1時間でした。ヤバすぎる…。

エラーの出ない正しいコード

『違い』わかりました?

『Creating default object from empty value』は未定義の変数にプロパティを追加すると発生する

『未定義の変数にプロパティを追加』とは何か。具体的には【 $new->item_id = $value->id; 】この個所。
モデルを呼び出して新規オブジェクトを作成しているのに『未定義』とはどういうことか。

はい、$news で定義してるのに $new objectに書こうとしてますね。
この $newオブジェクトは定義していないので「$newという未定義の変数(空の値)に item_id というプロパティを付けようとしている」となりエラーが出ます。

単なる凡ミス。
でもね、こういうの気付かない時はほんと気付かないんだよね…。

まとめ

エラーが発生した時。思い込みは修正の妨げになります。
私は今回、SQLに追加する値の方ばかり気にして「today() だから入らなかったんじゃないか」と思い【today()->format(‘Y-m-d’)】にしてみたりとか、テーブルの項目名が違うんじゃないかと見直しをしたりと右往左往してました。
で、原因はただの変数名間違い。

「ここは大丈夫」という思い込みはミスの発見を遅らせます。
皆様も注意しましょう。