【PHP】[Laravel]モデル同士のリレーションを定義しよう
今回のテーマ
Laravelにてテーブル同士のリレーションを定義する際に
記載する方法を記載します。
環境
Laravel:5.5.50
PHP:7.3.11
条件
今回はpost(投稿)、users(ユーザ)の関係を考える。
・post(投稿)は固有のusers(ユーザ)がしたもの
・users(ユーザ)はそれぞれ複数post(投稿)することができる
post(一)-users(多)の関係と考えることができる
設定方法
それぞれのモデルに以下のように設定する。
belongsTo、hasManyメソッドをそれぞれのモデルに記載する。
// Post.php 投稿 public function users(){ return $this->belongsTo('APP\User'); } // User.php ユーザ public function posts(){ return $this->hasMany('App\Post'); }
まとめ
設定方法は簡易ですが、一対多、一対一、多対多なのか関係を
見極めるのが重要になるかと思います。
これに関してはE-R図に書くとわかりやすいので、関係を考える際は
活用して、しっかり設計できるようにしたい