Laravel多对多关系(hasMany或belongsToMany)

问题描述:

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

我创建了一个电路板,用于存储所有用户和它们所在的组之间的关系。 我的问题是我不知道如何在Laravel中访问和设置它。 林不知道我是否有用户hasMany或belongsToMany。

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

我的表:

用户

  • ID
  • 名称
  • 电子邮件

集团

  • ID
  • 名称
  • Creator_ID

用户组

  • USER_ID
  • GROUP_ID

我明白任何帮助,谢谢!

如果要创建多对多关系,应该是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

+0

谢谢!帮了很多。然后我通过attach()函数添加用户。 –

在模型类,使用belongsToMany这表现在这里:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many

将用户添加到组,使用attach(),这表现在这里: https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)