From 0641e4cd04ab05223b803e905a38111b6489880c Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 5 Dec 2022 09:11:42 -0500 Subject: [PATCH] SearchKit - Prevent 'SearchSegment not found' errors during install & upgrade --- .../Spec/Provider/SearchSegmentExtraFieldProvider.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/search_kit/Civi/Api4/Service/Spec/Provider/SearchSegmentExtraFieldProvider.php b/ext/search_kit/Civi/Api4/Service/Spec/Provider/SearchSegmentExtraFieldProvider.php index 116d1e7d2f..37df93f86d 100644 --- a/ext/search_kit/Civi/Api4/Service/Spec/Provider/SearchSegmentExtraFieldProvider.php +++ b/ext/search_kit/Civi/Api4/Service/Spec/Provider/SearchSegmentExtraFieldProvider.php @@ -13,7 +13,6 @@ namespace Civi\Api4\Service\Spec\Provider; use Civi\Api4\Query\Api4SelectQuery; -use Civi\Api4\SearchSegment; use Civi\Api4\Service\Spec\FieldSpec; use Civi\Api4\Service\Spec\RequestSpec; @@ -50,9 +49,14 @@ class SearchSegmentExtraFieldProvider implements Generic\SpecProviderInterface { if (!isset(\Civi::$statics['all_search_segments'])) { \Civi::$statics['all_search_segments'] = []; try { - $searchSegments = SearchSegment::get(FALSE)->addOrderBy('label')->execute(); + // Use api wrapper instead of calling SearchSegment class directly to avoid "class not found" + // errors that may occur during installs and upgrades + $searchSegments = civicrm_api4('SearchSegment', 'get', [ + 'checkPermissions' => FALSE, + 'orderBy' => ['label' => 'ASC'], + ]); } - // Suppress SearchSegment BAO/table not found error e.g. during upgrade mode + // Suppress SearchSegment class/table not found error e.g. during upgrade mode catch (\Exception $e) { return []; } -- 2.25.1