🥝

Laravel テーブル結合先の値が取れない時はModelをチェックする

2025/01/25に公開

artisan tinkerで結合先のテーブルから値を引っ張る方法を探してたけど、値が取れない…
と思ったら、外部キー設定されてなかった、だから取れないんだと思って外部キーを設定したけど、まだ値が取れない。
そんな時UserのModelを眺めてたら気になるメソッドを発見。
試しにこのメソッド名そのままコピーして値取れるか検証したら、なんとできた!

例:userテーブル
user_id
municipality_id ->Municipalityテーブルへ結合

public function userMunicipality()
    {
        return $this->belongsTo(Municipality::class, 'municipality_id');
    }

$user->userMunicipality でMunicipalityテーブル1行まるごと取得できた。
ちなみに、外部キーの設定をしていなくてもできた。

Discussion