【发布时间】:2018-09-15 03:45:33
【问题描述】:
我有一个包含所有用户的用户表。我的应用程序允许父母和他们的孩子通过他们自己的电子邮件地址,但我需要能够说“孩子 1,与父母 1 和父母 2 相关”我想将所有这些存储在同一张表中,看起来像这是一种多对多关系,因为许多用户可以属于任意数量的其他用户。
如何用 eloquent 表示内部的多对多关系?
我的尝试只打到了网。
【问题讨论】:
我有一个包含所有用户的用户表。我的应用程序允许父母和他们的孩子通过他们自己的电子邮件地址,但我需要能够说“孩子 1,与父母 1 和父母 2 相关”我想将所有这些存储在同一张表中,看起来像这是一种多对多关系,因为许多用户可以属于任意数量的其他用户。
如何用 eloquent 表示内部的多对多关系?
我的尝试只打到了网。
【问题讨论】:
我认为你会以与任何其他多对多关系相同的方式来表示这一点;唯一的区别是同一个User 模型同时拥有默认和反向关系:
public function parents(){
return $this->belongsToMany(User::class, "users_users", "user_id", "parent_id");
}
public function children(){
return $this->belongsToMany(User::class, "users_users", "parent_id", "user_id");
}
注意:我可能有 user_id 和 parent_id 倒退,但可以轻松调整。
我能看到的唯一问题是尝试递归地获取孩子的孩子,如果这是一个问题,否则,这应该适用于基本的多对多。
【讨论】:
many-to-many 一样,您需要一个数据透视表,所以users_users,至少有parent_id 和user_id