LoginSignup
19
20

More than 1 year has passed since last update.

Laravelのリレーションがわかりづら過ぎるので忘備録

Last updated at Posted at 2019-07-22

LaravelのEloquentのリレーションのID指定が個人的にものすごく分かりづらいので忘備録です。
忘備録なので、他人が読んで理解できるかどうか、は考慮せずに書いてあります。ご了承ください。

利用する関数名 第一引数 第二引数 第三引数 第四引数 第五引数 第六引数
hasOne 相手先モデル あっち こっち
belongsTo 相手先モデル こっち あっち
hasMany 相手先モデル あっち こっち
belongsToMany 相手先モデル 結合テーブル こっち あっち
hasManyThrough 相手先モデル 中間モデル 中間外部 あっち外部 こっち 中間

用語
こっち:この関数を記述しているモデル。指定した相手先モデルが参照に利用しているカラム名。
あっち:指定した相手先モデル側がこの関数へ参照を持つために利用しているカラム名。
相手先モデル:この関数を利用することにより結合したいモデルの名前。
結合テーブル:この関数を記述しているモデルと、相手先モデルを結合するために使用するテーブルの名前。
中間モデル:この関数を記述しているモデルと、相手先モデルを結合するために利用するモデルの名前。
中間外部:中間モデルがこの関数を記述しているモデルと結合するのに利用しているカラム名。
あっち外部:相手先テーブルが、中間モデルと結合するのに利用しているカラム名。

なお、原則に沿って関数・テーブル名・モデル名をきちんと作成・使用していればこれらの引数は意識しなくても勝手に補完される。
複雑なのでなるだけこれらの引数は利用しないで済むのが好ましい。

19
20
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
20