关于php:Laravel多对多关系(hasMany或belongsToMany)

Laravel Many to Many Relationship ( hasMany or belongsToMany )

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

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

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

我的桌子:

用户

  • ID
  • 姓名
  • 电子邮件

  • ID
  • 姓名
  • Creator_ID

UserGroup

  • 用户身份
  • Group_ID

感谢您的帮助,谢谢!


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

Group模型中:

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

User模型中:

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

数据透视表应称为group_user

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


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

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