From 0b50e340bf772118cd690189297c50f9782d1f4a Mon Sep 17 00:00:00 2001 From: Irfan Date: Tue, 29 Nov 2022 00:40:26 +0500 Subject: [PATCH 1/2] Update MediaSearchQueryBuilder.php --- app/Http/QueryBuilder/MediaSearchQueryBuilder.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/Http/QueryBuilder/MediaSearchQueryBuilder.php b/app/Http/QueryBuilder/MediaSearchQueryBuilder.php index ff8d4e6..7582cd1 100644 --- a/app/Http/QueryBuilder/MediaSearchQueryBuilder.php +++ b/app/Http/QueryBuilder/MediaSearchQueryBuilder.php @@ -48,12 +48,12 @@ 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; + $operator = $exclude ? '!=' : '='; 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); + ->orWhere('genres.mal_id', $operator, $genre) + ->orWhere('demographics.mal_id', $operator, $genre) + ->orWhere('themes.mal_id', $operator, $genre) + ->orWhere('explicit_genres.mal_id', $operator, $genre); }); } @@ -65,7 +65,7 @@ abstract class MediaSearchQueryBuilder extends SearchQueryBuilder continue; } - $genre = (int)$genre; + $genre = (int) $genre; $builder = $this->filterByGenre($builder, $genre, $exclude); } From e73ffa66630052ec385621b48e3f04f4d4c19a88 Mon Sep 17 00:00:00 2001 From: Irfan Date: Tue, 29 Nov 2022 00:48:18 +0500 Subject: [PATCH 2/2] fix genres_exclude --- .../QueryBuilder/MediaSearchQueryBuilder.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/Http/QueryBuilder/MediaSearchQueryBuilder.php b/app/Http/QueryBuilder/MediaSearchQueryBuilder.php index 7582cd1..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 ? '!=' : '='; - return $query - ->orWhere('genres.mal_id', $operator, $genre) - ->orWhere('demographics.mal_id', $operator, $genre) - ->orWhere('themes.mal_id', $operator, $genre) - ->orWhere('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); }); }