我有一个简单的多对多关系(如果可能的话):
作者: 在博客上我们有Posts => Authorable 在杂志上,文章=> Authorable
两种关系都按预期/记录的方式工作。我需要的是获取特定帖子类别的所有作者
我只有:Post::category('blue')
收集(类别是范围)。基于此,获得撰写“蓝色帖子”的作者的最佳方式是什么?
答案 0 :(得分:2)
您希望在您的范围内使用has()
和whereHas()
查询方法。有关使用它们的详细说明,请参阅Laravel - Eloquent "Has", "With", "WhereHas" - What do they mean?。
基本上看起来像这样:
$authorsOfBluePosts = Author::whereHas('posts', function ($postsQuery) {
$postsQuery->whereHas('category', function ($categoryQuery) {
$categoryQuery->where('name', 'blue');
});
})->get();