【Laravel】local.ERROR: Trying to get property ‘id’ of non-object {“exception”:”[object] (ErrorException(code: 0):

【Laravel】local.ERROR: Trying to get property ‘id’ of non-object {“exception”:”[object] (ErrorException(code: 0):

【Laravel】local.ERROR: Trying to get property ‘id’ of non-object {“exception”:”[object] (ErrorException(code: 0):

先の投稿内容と同じパーツでの一幕。
Creating default object from empty valueの解決よりもこちらの方がだいぶかかりました。
おおよそ2時間くらい。
同じく凡ミスと思い込みで解決が遅れたというね。
自戒の事例です。

Google先生に翻訳していただくと「非オブジェクトのプロパティ『id』を取得しようとしています」との事。
idを取得しようとしてるって、このテーブルAuto_Incrementなんだけど。
と思ってしまったから他が見えなくなったんだろうなぁきっと。

問題が発生していた場所

前回と同じですね。
と言うか(時系列的にこちらが前なので)前回よりも出来の悪いスクリプトですよね。

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

そうなんです、変数の件はもちろんですが、save()が無かった。

new Modelsで宣言しておいて何もしないんか!と言われてたんですね。

『Trying to get property ‘○○’ of non-object』はアロー演算子の先に値が無い時にも出てくる

過去記事でも記載している通り、このエラーはオブジェクトが存在しない時に発生します。
アロー演算子で操作できるのは『配列』ではなく『オブジェクト』。前回はViewでオブジェクトを操作しているときに発生しました。
今回も「矢印の先にオカシイ値があるのだろう」という思い込みが解決スピートを遅延させてしまいました。

‘○○’の部分が『id』である点が今回の特徴です。
Auto_Incrementなのにidで苦情を言われている場合、それはそもそもアロー演算子の先のお話ではありません。
idそのものに作用する部分(今回は$new に色々書いておいて処理が無い事)に何か不備があります。

まとめ

凡ミスの解決に合計3時間。
痛すぎる。

プログラムに慣れてきて思い込みも増えてしまったようです。
マジで気をつけなきゃ。