我有2个表文章和修订
它们之间有一种关系 one2many
修订表具有两列 isApproved 和 isPublished
现在,我要选择所有文章,当其第一个已批准修订版是已发布
Article::whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
});
但是此代码选择了所有已批准并发布修订的文章
答案 0 :(得分:1)
尝试过滤结果:
$articles = Article::
whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
})
->get()
->filter(function ($article) {
return $article->revisions->first(function ($revision) {
return $revision->isApproved == true;
})
->isPublished == true;
});