Eloquent - Return 仅在关系中没有关联值时注册

Eloquent - Return Registry only if it doesn't have a value asossiated in the relationship

我有这个问题,也许有人可以帮助我:)

Student::whereHas('courses.group', function ($query) use ($year) {
            $query->where('year', '!=', $year);
        })->orDoesntHave('courses')->where('active', '=', '1')->get()

我在 eloquent 中有这个查询,它有效,但我遇到了问题。我真正需要在该查询中获得的是所有通过枢轴 courses 关联 groups 的注册管理机构 students,在它拥有的所有组中,它应该 return student 只有当它没有在他的组中注册的 $year 值,或者如果没有任何 courses。任何的想法? :)

WhereHas()whereDoesntHave()逻辑相反。您需要更改查询逻辑,但应该直截了当,据我所知,这应该可行。

Student::whereDoesntHave('courses.group', function ($query) use ($year) {
    $query->where('year', $year);
})->orDoesntHave('courses')
->where('active', '=', '1')
->get();