Passed
Push — master ( 8c9d15...53e72a )
by Thomas
07:13
created

FiltersSearchableLevels   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 8
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
dl 0
loc 8
rs 10
c 1
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 6 1
1
<?php
2
3
namespace App\Traits;
4
5
use Illuminate\Database\Eloquent\Builder;
6
use Spatie\QueryBuilder\Filters\Filter;
7
8
class FiltersSearchableLevels implements Filter
9
{
10
    public function __invoke(Builder $query, $value, string $property)
11
    {
12
        $value = collect($value)->toArray();
13
        $query->where(function (Builder $query) use ($value) {
14
            $query->whereIn('level_id', $value)->orWhereHas('children', function (Builder $query) use ($value) {
15
                $query->whereIn('level_id', $value);
16
            });
17
        });
18
    }
19
}
20