Laravel 多对多关系( hasMany 或 belongsToMany )
Laravel Many to Many Relationship ( hasMany or belongsToMany )
我目前正在使用 Laravel 构建我的第一个应用程序并且偶然发现了我不知道如何设置模型(用户和组)之间的多对多关系的问题。
我创建了一个面板,其中我存储了所有用户和他们所在的组之间的关系。
我的问题是我不知道如何在 Laravel 中访问和设置它。
我不确定我是否必须使用 hasMany 或 belongsToMany。
我正在尝试找到一种将用户添加到组的方法,以便在用户组中创建一个新条目 table。
我的tables:
用户
- ID
- 姓名
- 电子邮件
组
- ID
- 姓名
- Creator_ID
用户组
- User_ID
- Group_ID
感谢任何帮助,谢谢!
在模型 class 中,使用 belongsToMany,如下所示:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
要将用户添加到组,请使用 attach(),如下所示:
https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)
如果要创建多对多关系,应该是belongsToMany
,而不是hasMany
。
在Group
模型中:
public function users()
{
return $this->belongsToMany(Group::class);
}
并且在 User
模型中:
public function groups()
{
return $this->belongsToMany(User::class);
}
支点 table 应称为 group_user
。
https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
我目前正在使用 Laravel 构建我的第一个应用程序并且偶然发现了我不知道如何设置模型(用户和组)之间的多对多关系的问题。
我创建了一个面板,其中我存储了所有用户和他们所在的组之间的关系。 我的问题是我不知道如何在 Laravel 中访问和设置它。 我不确定我是否必须使用 hasMany 或 belongsToMany。
我正在尝试找到一种将用户添加到组的方法,以便在用户组中创建一个新条目 table。
我的tables:
用户
- ID
- 姓名
- 电子邮件
组
- ID
- 姓名
- Creator_ID
用户组
- User_ID
- Group_ID
感谢任何帮助,谢谢!
在模型 class 中,使用 belongsToMany,如下所示:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
要将用户添加到组,请使用 attach(),如下所示: https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)
如果要创建多对多关系,应该是belongsToMany
,而不是hasMany
。
在Group
模型中:
public function users()
{
return $this->belongsToMany(Group::class);
}
并且在 User
模型中:
public function groups()
{
return $this->belongsToMany(User::class);
}
支点 table 应称为 group_user
。
https://laravel.com/docs/5.4/eloquent-relationships#many-to-many