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

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

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

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

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

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

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

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

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

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

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

コードの意味

postに紐づいたuserのnameを表示してね。

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

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

この方法は、NULL合体演算子というPHPの機能を使った方法になります。

なお、もし【匿名】といれず、空白にしておきたい場合には、下記のようにします。

データに値が入っていない可能性がある場合など、使える解決法かと思います。

エラーが出て困ったときには、お試しください。

 

 

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

【Laravelの教科書・無料プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

Laravel8版と、最新のLaravel9版、ふたつのテキストご用意してます♪

Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Laravel関連のご相談承ってます♪
「Webアプリを開発してほしい」
「社内にLaravelが分かる人がいない。コンサルしてほしい」
そんな企業様のご依頼承っています。
お問い合わせはこちら
Twitter始めました。
40代からプログラミング!

コメント

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