Laravel多对多关系(hasMany或belongsToMany)

时间:2017-07-27 11:31:43

标签: php laravel model many-to-many relationship

我目前正在使用Laravel构建我的第一个应用程序并且偶然发现了我不知道如何在模型(用户和组)之间建立多对多关系的问题。

我创建了一个板,用于存储所有用户与他们所在组之间的关系。 我的问题是我不知道如何访问并在Laravel中设置它。 我不确定我是否必须使用hasMany或belongsToMany。

我正在尝试找到一种方法来将用户添加到组,以便在UserGroups表中创建一个新条目。

我的桌子:

用户

  • ID
  • 名称
  • 电子邮件

  • ID
  • 名称
  • Creator_ID

用户组

  • USER_ID
  • GROUP_ID

感谢您的帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

在模型类中,使用belongsToMany,如下所示:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

要将用户添加到组,请使用attach(),如下所示: https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)

答案 1 :(得分:0)

如果您想创建多对多关系,则应为belongsToMany,而不是hasMany

Group模型中:

public function users()
{
    return $this->belongsToMany(Group::class);
}

User模型中:

public function groups()
{
    return $this->belongsToMany(User::class);
}

数据透视表应称为group_user

https://laravel.com/docs/5.4/eloquent-relationships#many-to-many