【问题标题】:Structuring siblings relation on same model in Laravel在 Laravel 中的同一模型上构建兄弟姐妹关系
【发布时间】:2021-08-05 04:32:09
【问题描述】:

我有student 模型。我想从用户个人资料页面上的现有学生表中添加兄弟姐妹。我正在从下拉列表中选择兄弟姐妹。另外我想将老学生(兄弟姐妹)的父母添加到新学生(兄弟姐妹)中。对于学生家长,我有多对多的关系,我将 student_idparent_id 保存在数据透视表中

如何构造和添加这个同级部分?

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    我认为表示这种家庭关系(父母、孩子、兄弟姐妹)的最佳方式是在学生表中放置可为空的 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();
    

    【讨论】:

    • 我对父母有不同的模式,对学生和兄弟姐妹有相同的模式
    猜你喜欢
    • 2020-01-31
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    相关资源
    最近更新 更多