1、一對一關系
$this->hasOne(關聯model,[關聯model的聯系鍵],[本model的聯系鍵]);
return $this->hasOne(Extuser::class, 'uid', 'id');
關聯表中的外鍵名 user_id 本表中的主鍵ID為id
return $this->hasOne(Extuser::class);
編寫一對一關系
// 用戶主表對用戶從表 一對一 模型中方法
public function userExt() {
return $this->hasOne(UserExt::class);
}
//控制器中使用
$user = User::with('userExt')->find(1);
dump($user->toArray());
2、一對多關系
在實際的項目中一個用戶發表多篇的文章,這樣的關系就是一對多的關系。
$this->hasMany(關聯model,[關聯model的聯系鍵],[本model的聯系鍵]);
return $this->hasMany(App\Phone::class, 'foreign_key', 'local_key');
// 一對多 模型
public function articles() {
return $this->hasMany(Article::class,'uid');
}
//控制器
$data = User::with('articles')->find(1);
dump($data->toArray());
3、多對多關系
$this-> belongsToMany(關聯表model,中間表表名,中間表中本model的關聯ID,中間表中關聯model的關聯ID);
return $this->belongsToMany(App\User::class, 'user_auth_table', 'user_id', 'auth_id');
// 多對多 模型
public function auths(){
return $this->belongsToMany(Auth::class,'user_auth','user_id','auth_id');
}
$user = User::find(1);
$data = $user->auths();
dump($data->get()->toArray());