Laravel, selecting all Posts where its first approved revision is published
up vote
0
down vote
favorite
I have 2 tables Articles and Revisions
There is a relationship between them one2many
The Revisions table has 2 columns isApproved and isPublished
Now, I want to select all articles, when its first Approved revision is Published
Article::whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
});
But this code selected all articles that have approved and published revisions
laravel eloquent
add a comment |
up vote
0
down vote
favorite
I have 2 tables Articles and Revisions
There is a relationship between them one2many
The Revisions table has 2 columns isApproved and isPublished
Now, I want to select all articles, when its first Approved revision is Published
Article::whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
});
But this code selected all articles that have approved and published revisions
laravel eloquent
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have 2 tables Articles and Revisions
There is a relationship between them one2many
The Revisions table has 2 columns isApproved and isPublished
Now, I want to select all articles, when its first Approved revision is Published
Article::whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
});
But this code selected all articles that have approved and published revisions
laravel eloquent
I have 2 tables Articles and Revisions
There is a relationship between them one2many
The Revisions table has 2 columns isApproved and isPublished
Now, I want to select all articles, when its first Approved revision is Published
Article::whereHas('revisions', function ($query) {
$query->where('isApproved', 1)->where('isPublished', 1);
});
But this code selected all articles that have approved and published revisions
laravel eloquent
laravel eloquent
edited Nov 8 at 17:02
asked Nov 8 at 16:56
user9500574
647
647
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
Try filter the results:
$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;
});
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
Try filter the results:
$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;
});
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
add a comment |
up vote
1
down vote
Try filter the results:
$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;
});
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
add a comment |
up vote
1
down vote
up vote
1
down vote
Try filter the results:
$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;
});
Try filter the results:
$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;
});
edited Nov 8 at 17:13
answered Nov 8 at 17:08
HCK
2,7861829
2,7861829
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
add a comment |
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
Thank you, but I want to avoid using Filter method, I'm trying to use the answer in this page, but I failed stackoverflow.com/a/53120558/9500574
– user9500574
Nov 8 at 17:11
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
I think I got the appropriate solution
– user9500574
Nov 8 at 17:15
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53212582%2flaravel-selecting-all-posts-where-its-first-approved-revision-is-published%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown