了解Laravel中的多对多关系

时间:2018-02-06 06:06:19

标签: php database laravel

我正在关注laravel的官方文档。 我正在努力建立usersroles之间的关系。 所以,表格是: users | roles | role_user

此处role_user是我的数据透视表。

现在在User模型中,我将关系定义如下:

public function roles() {
    return $this->belongsToMany('App\Role');
}

所以这里在return语句块中它显示belongsToMany('App\Role')。但是用户只能拥有一个角色吗?管理员或订户等 或者在许多用户与许多用户相关联的情况下,它被称为多对多?

1 个答案:

答案 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');
}

希望这能帮到你!