Reset local scope

Viewed 22

I am (trying) to use scopes to handle some "filtering" within my models.

I got two scopes on the model: verified and unverified. Unfortunately the verification is not a single field in the database, but a query like:

return $query->whereHas('profile', function ($q) {
            $q->whereHas('invitations', function ($i) {
                ...
        });

Now I got the following issue: If I scope like this

$verified_members = $members->verified();

and work with $verified_members everything works fine:

$verified_members->whereHas('car', function ($q) {
            $q->where('stolen', true);
        })->count();

but if I do something like:

$verified_members = $members->verified();
$unverified_members = $members->unverified();

$verified_members->whereHas('car', function ($q) {
    $q->where('stolen', true);
})->count();

$unverified_members->whereHas('car', function ($q) {
    $q->where('stolen', true);
})->count();

I get 0 as result for $unverified_members, as it seems like the scopes are being chained. If I remove $verified_members again, I am getting results for $unverified_members.

0 Answers
Related