【发布时间】:2021-08-05 04:32:09
【问题描述】:
我有student 模型。我想从用户个人资料页面上的现有学生表中添加兄弟姐妹。我正在从下拉列表中选择兄弟姐妹。另外我想将老学生(兄弟姐妹)的父母添加到新学生(兄弟姐妹)中。对于学生家长,我有多对多的关系,我将 student_id 和 parent_id 保存在数据透视表中
如何构造和添加这个同级部分?
【问题讨论】:
我有student 模型。我想从用户个人资料页面上的现有学生表中添加兄弟姐妹。我正在从下拉列表中选择兄弟姐妹。另外我想将老学生(兄弟姐妹)的父母添加到新学生(兄弟姐妹)中。对于学生家长,我有多对多的关系,我将 student_id 和 parent_id 保存在数据透视表中
如何构造和添加这个同级部分?
【问题讨论】:
我认为表示这种家庭关系(父母、孩子、兄弟姐妹)的最佳方式是在学生表中放置可为空的 parent_id,
所以当这个 parent_id 为 null 时,这意味着该对象是主要的父对象,否则它只是一个子对象。 之后你可以定义一些关系:
public function children()
{
return $this->hasMany(self::class, "parent_id");
}
public function parent()
{
return $this->belongsTo(self::class, "parent_id");
}
对于兄弟姐妹,我不知道是否有办法编写关系,但你可以像这样返回兄弟姐妹:
$siblings = Student::where("parent_id", $this->parent_id)->get();
【讨论】: