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());