Trying to get property 〇〇 of non-object:Laravelエラー解決法

Laravel・PHP豆知識・トラブル対策

このエラーは、「オブジェクトがないのに、プロパティを参照しようとしているよ」という意味。

手っ取り早く治す方法は、プロパティの後に【??”代わりの値”】を入れてあげること。

私の例を使って、説明していきます。

まず、こちらがエラーが起こったときのコードと画面。

postとuserモデルはリレーションでつながっています。

なので、userのnameを呼び出せるはずなのに、出てこない。

理由は、post(投稿)の中に、userがないものが混じっていたから。

Laravel側では、「userのnameが入っていないのもあるのに、どうしたらいいの!?」と混乱してしまっているようです。

そこで、次のようにコードを修正します。

 

コードの意味postに紐づいたuserのnameを表示してね。

userのnameが空っぽのときには、【匿名】といれて。

 

すると、画面が表示されるようになりました。

ご紹介した例のように、データに値が入っていない可能性がある場合には、使える解決法かと思います。

試してみてください。

 

 

コメント

タイトルとURLをコピーしました