From ee1db268c52ace4a4c40ca5629a57cfbf0678255 Mon Sep 17 00:00:00 2001 From: Guillaume Pommier <guillaume.pommier@grand-manitou.com> Date: Fri, 8 Oct 2021 18:32:55 +0200 Subject: [PATCH] Bugfix first logic was not taken into account --- app/Http/Controllers/Frontend/PlasmidController.php | 2 ++ app/Traits/Frontend/SearchBuilder.php | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Frontend/PlasmidController.php b/app/Http/Controllers/Frontend/PlasmidController.php index d9c272c..83dffb9 100644 --- a/app/Http/Controllers/Frontend/PlasmidController.php +++ b/app/Http/Controllers/Frontend/PlasmidController.php @@ -30,7 +30,9 @@ class PlasmidController extends Controller if (request()->ajax()) { $query = Plasmid::query()->when(request()->searchBuilder, function ($query, $searchBuilderAjaxRequest) { $criteria = $searchBuilderAjaxRequest['criteria']; + \Log::debug($criteria); $logic = $searchBuilderAjaxRequest['logic']; + \Log::debug($logic); $query = $this->buildRecursiveQuery($query, $criteria, $logic); }); diff --git a/app/Traits/Frontend/SearchBuilder.php b/app/Traits/Frontend/SearchBuilder.php index 1b0c997..4348075 100644 --- a/app/Traits/Frontend/SearchBuilder.php +++ b/app/Traits/Frontend/SearchBuilder.php @@ -13,9 +13,15 @@ trait SearchBuilder // Recursive $subCriteria = $item['criteria']; $subLogic = $item['logic']; - $query->where(function ($query) use ($subCriteria, $subLogic) { - $this->buildRecursiveQuery($query, $subCriteria, $subLogic); - }); + if ($logic == 'OR') { + $query->orWhere(function ($query) use ($subCriteria, $subLogic) { + $this->buildRecursiveQuery($query, $subCriteria, $subLogic); + }); + } else { + $query->where(function ($query) use ($subCriteria, $subLogic) { + $this->buildRecursiveQuery($query, $subCriteria, $subLogic); + }); + } } else { // Apply criteria -- GitLab