Laravel 多对多关系( hasMany 或 belongsToMany )
Posted
技术标签:
【中文标题】Laravel 多对多关系( hasMany 或 belongsToMany )【英文标题】:Laravel Many to Many Relationship ( hasMany or belongsToMany ) 【发布时间】:2018-01-03 02:41:26 【问题描述】:我目前正在使用 Laravel 构建我的第一个应用程序,并且偶然发现了我不知道如何设置模型(用户和组)之间的多对多关系的问题。
我创建了一个板,在其中存储所有用户与他们所在的组之间的关系。 我的问题是我不知道如何在 Laravel 中访问和设置它。 我不确定我是否必须使用 hasMany 或 belongsToMany。
我正在尝试找到一种将用户添加到组的方法,以便在 UserGroups 表中创建一个新条目。
我的桌子:
用户
身份证 姓名 电子邮件组
身份证 姓名 创作者 ID用户组
用户 ID Group_ID感谢任何帮助,谢谢!
【问题讨论】:
【参考方案1】:如果要创建多对多关系,应该是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
【讨论】:
【参考方案2】:在模型类中,使用belongsToMany,如下所示:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
要将用户添加到组,请使用 attach(),如下所示: https://laravel.com/docs/5.4/eloquent-relationships#the-create-method(滚动到多对多关系)
【讨论】:
以上是关于Laravel 多对多关系( hasMany 或 belongsToMany )的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 关系,hasmany 和 blongstomany