Laravel7 リレーションで紐付き先がない場合

null許可のカラムに対してリレーションを設定して、null時にbelongsToなどで値を取得しようと
“Trying to get property ‘取得したいカラム名’ of non-object”
のエラーが発生する。

例えば
membersテーブル
id
area_id

areasテーブル
id
name

があったとして
{{ $member->area->name }}
で表示しようとした時、members.area_idがnullだとエラーが発生する。

その場合は、リレーションの設定に
->withDefault()を足して以下のようにすると、null時はエラーにならずnull(空文字)表示される。

return $this->belongsTo(Area::class);
     ↓
return $this->belongsTo(Area::class)->withDefault();

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です