【Laravel基礎】リレーション
はじめに
Laravelでリレーションはちょっと特殊な書き方をします。備忘録として残しておきます。
雑多なメモ書きという感じですがご容赦ください。
Laravelでリレーション
Laravelのリレーションはモデルに書くことで定義できます。
・1対1
・1対多
・多対多
この3パターンで書き方が異なってきます。
1対1
例えば、ケータイは基本的に一人につき一つです。(複数台持ちはここでは無視してください。)
まずはテーブルを作ります。
phoneテーブルには外部キーであるuser_idを持たせています。そしてモデルで下記のように定義します。
public function phone(){
return $this->hasOne('App\Models\Phone');
}
public function user(){
return $this->belongsTo('App\Models\User');
}
これで1対1のリレーションをはることが出来ました。
1対多
1対多の場合も基本的な考え方は変わりません。
例えば、SNSの投稿機能などでは、ユーザー一人につき投稿は複数あります。
まずはテーブルを作成します。
やはりpostsテーブルには外部キーであるuser_idが必要です。
モデルは下記のようになります。
public function posts(){
return $this->hasMany('App\Models\Post');
}
public function user(){
return $this->belongsTo('App\Models\User');
}
このように書きます。
終わりに
これで、userを取得してそれぞれで定義したメソッドを使えばリレーション関係にあるphoneやpostsを引っ張ってくることが出来ます。
多対多はまた少し違うので今回は割愛します。←
Author And Source
この問題について(【Laravel基礎】リレーション), 我々は、より多くの情報をここで見つけました https://qiita.com/kt103/items/c80001bfaaf44539c9f3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .