##データベーステーブルの関係は大体下記のように分けられます。
・1対1
・1対多
・多対多
##1対1
例:userとphoneの関係、基本一人には一つの番号しか持ってないですね。
userでphoneを検索したいとき、二つの関係の定義:hasOne
phoneでuserを検索したいとき、二つは逆関係の定義:belongsTo
##1対多
例:articleとcommentの関係、一つの記事に複数のcommentが存在しますね。
articleでcommentを検索したいとき、二つの関係の定義:hasMany
commentでarticleを検索したいとき、二つは逆関係の定義:belongsTo
##多対多
例:userとroleの関係、userが多くのroleを持ち、rolesも大勢のuserを持っています。
二つの表の関係を別の表user_roleで結びつけます。
userでroleを検索したいとき、二つの関係の定義:belongsToMany
Models
Class User extends Model
{
public function roles()
{
return this->belongsToMany('App\Role','role_user','user_id','role_id');
}
}
roleでuserを検索したいとき、二つは逆関係の定義:belongsToMany
Models
Class Role extends Model
{
public function users()
{
return this->belongsToMany('App\User','role_user','role_id','user_id');
}
}