【问题标题】:Getting the inverse relation in Laravel在 Laravel 中获取逆关系
【发布时间】:2020-11-07 09:47:10
【问题描述】:

有学校和成绩表。每所学校默认有 10 个年级。但是有些学校只有一些成绩。所以我创建了一个表来存储学校的隐藏成绩

现在我想获取学校成绩,这是没有隐藏成绩的默认成绩。

这是数据库结构:

学校:

id
name

成绩:

id

name

school_hidden_​​grades:

school_id

grade_id

【问题讨论】:

标签: mysql laravel


【解决方案1】:

你可以简单地这样做: 学校模型

    public function hiddenGrades( )
    {
        return $this->belongsToMany(Grade::class,'school_hidden_grades','school_id','grade_id');
    }

    public function grades( )
    {
        return $this->hasMany(Grade::class);
    }

要获得学校隐藏成绩,您可以简单地这样做:$school->hiddenGrades()->get();

【讨论】:

  • 但我想获得不隐藏的成绩
  • @Behiry,如果你想隐藏一个成绩,那么你应该简单地添加一个名为 : isHidden 的布尔列,并在成绩表上将其设置为 true/false。然后只获得可见的学校成绩:``` $school->grades->where('isHidden', false); ```
  • 如果只有一所学校,这是正确的,但每所学校都有隐藏的成绩
  • @Behiry,你已经在 Grades 表中有 school_id,这意味着 Grade 属于一所学校
  • 抱歉这个错误,我删除了它
猜你喜欢
  • 2017-10-21
  • 2017-07-16
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 2018-12-13
  • 2021-12-11
  • 2016-02-29
  • 2015-11-29
相关资源
最近更新 更多