【发布时间】:2019-11-07 07:16:24
【问题描述】:
抱歉标题凌乱,我不知道如何描述它。 所以我得到了三个表tables in re model:学生、组以及与它们相关的表,称为课程。
我试图让每个“学生”没有分配小组或分配了一个年份大于 2019 年的小组,到目前为止我得到了这个代码,但我无法访问年份列,我尝试使用“与()" 方法,但我没有运气,有什么想法吗? 我在 laravel 上的模型:
学生:
public function courses()
{
return $this->hasMany(\App\Models\Course::class, 'id_student');
}
组:
public function courses()
{
return $this->hasMany(\App\Models\Course::class, 'id_group');
}
课程:
public function student()
{
return $this->belongsTo(\App\Models\Student::class, 'id_student');
}
public function group()
{
return $this->belongsTo(\App\Models\Group::class, 'id_group');
}
我的查询:
$students_noassigned = Student::whereHas('courses', function ($query) {
$query->where('year', '>', 2010);
})
->doesntHave('courses', 'or')
->get();
【问题讨论】:
标签: laravel eloquent where-clause relation with-statement