Trying to get property 〇〇 of non-object と出たら、「オブジェクトがないのに、プロパティを参照しようとしているよ」という意味。
Trying to get property 〇〇 on null と出たら、「nullなのにプロパティを読み込もうとしているよ」という意味です。
手っ取り早く治す方法としては、表示しようとしているプロパティの後に【??”代わりの値”】を入れてあげることです。
例を使って、説明していきます。
こちらがエラーが起こったときのコードだとします。
1 |
{{$post->user->name}} |
次のようにコードを修正します。
1 |
{{$post->user->name??'匿名'}} |
コードの意味
postに紐づいたuserのnameを表示してね。
userのnameが空っぽのときには、【匿名】といれて。
すると、画面が表示されるようになります。
【画面例】
この方法は、NULL合体演算子というPHPの機能を使った方法になります。
なお、もし【匿名】といれず、空白にしておきたい場合には、下記のようにします。
1 |
{{$post->user->name??''}} |
こうすれば、??” の4文字でエラーが治ります。
データに値が入っていない可能性がある場合などに、使える解決法です。
エラーが解決したら嬉しいです。
なお、根本的な修正にはならないので、そのあたりはご注意を。

Junko
根本的に直すにはなぜnullになってしまうのかを探って、コードを修正する必要があります。
カラムを追加したり、テーブルの構造を変えた場合には、変更前のレコードを削除すると治ったりします。
コメント