我正在关注laravel的官方文档。
我正在努力建立users
和roles
之间的关系。
所以,表格是:
users
| roles
| role_user
此处role_user
是我的数据透视表。
现在在User
模型中,我将关系定义如下:
public function roles() {
return $this->belongsToMany('App\Role');
}
所以这里在return语句块中它显示belongsToMany('App\Role')
。但是用户只能拥有一个角色吗?管理员或订户等
或者在许多用户与许多用户相关联的情况下,它被称为多对多?
答案 0 :(得分:2)
用户使用的多对多关系可以有很多角色。正如您所说,您的应用程序只需要一个用户角色,然后使用One to Many。但在这种情况下你不能使用One to One。
所以你的关系看起来像这样:
用户belongsTo()角色和角色hasMany()用户。
在用户模型中:
public function roles() {
return $this->belongsTo('App\Role');
}
在角色模型中:
public function user() {
return $this->hasMany('App\User');
}
希望这能帮到你!