オタブロ > IT知識 > PHP > 【Laravel6】1対多のリレーションについて

【Laravel6】1対多のリレーションについて

IT知識
スポンサーリンク

親にはhasManyを指定します。

外部キーは「モデル名+_id」がデフォルトですが、第二引数に任意の外部キーを指定することができます。下記は「User-Todo」のリレーションの例となります。

public function todo()
{
    return $this->hasMany('App\Todo');
}

子にはbelongsTo 親にはhasManyを指定します。

public function user()
{
    return $this->belongsTo('App\User');
}

使い方

上記のようにリレーションが定義出来たら実際に他テーブルから取得する処理を書いていきます。

こちらはTodoコントローラーからUserの名前を取得する処理の例となります。

$user_name = todo::find(1)->user->name;

ddで取得した結果こちらのようになります。

"test"

例ではfindとしていますがwhereなどと組み合わせてもいいかもです。

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