diff --git a/CHANGELOG.md b/CHANGELOG.md index 53355afcb..001f1e030 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,7 @@ ### Fixes: -* Fix scope search +* Fix query and scope search * Reschedule missed stay-in-touch * Fix tasks 'mark as done' UX * Fix tattoo or piercing activity locale title diff --git a/app/Helpers/SearchHelper.php b/app/Helpers/SearchHelper.php index 014030359..4fbd4220e 100644 --- a/app/Helpers/SearchHelper.php +++ b/app/Helpers/SearchHelper.php @@ -39,7 +39,7 @@ class SearchHelper ]); })->paginate($limitPerPage); } else { - $results = Contact::search($needle, $accountId, $limitPerPage, $order, 'AND is_partial = FALSE'); + $results = Contact::search($needle, $accountId, $limitPerPage, $order, 'AND `contacts`.`is_partial` = FALSE'); } return $results; diff --git a/app/Http/Controllers/ContactsController.php b/app/Http/Controllers/ContactsController.php index b8f05fea2..eced1e0e4 100644 --- a/app/Http/Controllers/ContactsController.php +++ b/app/Http/Controllers/ContactsController.php @@ -510,7 +510,7 @@ class ContactsController extends Controller return; } - $results = SearchHelper::searchContacts($needle, 20, 'created_at'); + $results = SearchHelper::searchContacts($needle, 20, '`contacts`.`created_at`'); if (count($results) !== 0) { return ContactResource::collection($results); @@ -671,7 +671,7 @@ class ContactsController extends Controller $perPage = $request->has('perPage') ? $request->get('perPage') : config('monica.number_of_contacts_pagination'); // search contacts - $contacts = $contacts->search($request->get('search') ? $request->get('search') : '', $accountId, $perPage, 'is_starred desc', null, $sort); + $contacts = $contacts->search($request->get('search') ? $request->get('search') : '', $accountId, $perPage, '`contacts`.`is_starred` desc', null, $sort); return [ 'totalRecords' => $contacts->total(), diff --git a/app/Traits/Searchable.php b/app/Traits/Searchable.php index f78fa45fd..212ea60da 100644 --- a/app/Traits/Searchable.php +++ b/app/Traits/Searchable.php @@ -25,9 +25,13 @@ trait Searchable return; } - $queryString = StringHelper::buildQuery($this->searchable_columns, $needle); + $columns = array_map(function ($column) { + return "`{$this->getTable()}`.`$column`"; + }, $this->searchable_columns); - $builder->whereRaw("`{$this->getTable()}`.`account_id` = ".$accountId.' and ('.$queryString.') '.$whereCondition); + $queryString = StringHelper::buildQuery($columns, $needle); + + $builder->whereRaw("`{$this->getTable()}`.`account_id` = ".$accountId.' AND ('.$queryString.') '.$whereCondition); $builder->orderByRaw($orderBy); if ($sortOrder) { $builder->sortedBy($sortOrder);