diff --git a/app/Http/QueryBuilder/MediaSearchQueryBuilder.php b/app/Http/QueryBuilder/MediaSearchQueryBuilder.php index ff8d4e6..ce114fb 100644 --- a/app/Http/QueryBuilder/MediaSearchQueryBuilder.php +++ b/app/Http/QueryBuilder/MediaSearchQueryBuilder.php @@ -48,12 +48,18 @@ abstract class MediaSearchQueryBuilder extends SearchQueryBuilder private function filterByGenre(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $builder, int $genre, $exclude = false): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder { return $builder->where(function ($query) use ($genre, $exclude) { - $operator = $exclude ? '!=' : null; - return $query - ->whereOr('genres.mal_id', $operator, $genre) - ->whereOr('demographics.mal_id', $operator, $genre) - ->whereOr('themes.mal_id', $operator, $genre) - ->whereOr('explicit_genres.mal_id', $operator, $genre); + return $exclude ? + $query + ->orWhere('genres.mal_id', $genre) + ->orWhere('demographics.mal_id', $genre) + ->orWhere('themes.mal_id', $genre) + ->orWhere('explicit_genres.mal_id', $genre) + : + $query + ->where('genres.mal_id', '!=', $genre) + ->where('demographics.mal_id', '!=', $genre) + ->where('themes.mal_id', '!=', $genre) + ->where('explicit_genres.mal_id', '!=', $genre); }); } @@ -65,7 +71,7 @@ abstract class MediaSearchQueryBuilder extends SearchQueryBuilder continue; } - $genre = (int)$genre; + $genre = (int) $genre; $builder = $this->filterByGenre($builder, $genre, $exclude); }