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
答
在模型类,使用belongsToMany这表现在这里:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
将用户添加到组,使用attach(),这表现在这里: https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)
谢谢!帮了很多。然后我通过attach()函数添加用户。 –