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