Laravel, выбирая все сообщения, где опубликована его первая утвержденная редакция - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть 2 таблицы Статьи и Редакции
Между ними существует связь one2many

Таблица Revisions имеет 2 столбца isApproved и isPublished

Теперь я хочу выбрать все статьи , когда его первая Одобренная редакция Опубликована

Article::whereHas('revisions', function ($query) {
    $query->where('isApproved', 1)->where('isPublished', 1);
});

Но этот код выделил все статьи, которые одобрили и опубликовали исправления

1 Ответ

0 голосов
/ 08 ноября 2018

Попробуйте отфильтровать результаты:

$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;

               });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...