如何为 m:n 关系上的特定 'n' select 个实例?

How to select instances for specific 'n' on m:n relationships?

我有两个模型 Teacher 和 Category。这两者具有多对多关系。

我想得到那些类别等于 "OLevels" 的老师。 eloquent 的哪种方法用于它,或者有其他方法可以得到它吗?

有没有办法得到它:

$teachers = Teacher::where('category', '=', 'OLevels')->get();

你可以使用 whereHas

$category = 'OLevels';
$teachers = Teacher::whereHas('category', function($q) use ($category){
    $q->where('name', $category);
})->get();

您可以使用带有约束的预加载

$teachers = Teacher::with(['category' => function($query)
{
    $query->where('category', '=', 'OLevels');

}])->get();

documentation 中的更多信息。