laravel之orm模型关联

1、一对一关系

$this->hasOne(关联model[关联model的联系键][model的联系键]);

return $this->hasOne(Extuser::class, 'uid', 'id');

关联表中的外键名 user_id   本表中的主键IDid

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,中间表中关联modelID);

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


 


猜你喜欢

转载自www.cnblogs.com/konglingxin/p/11302165.html