41
41
use function is_iterable ;
42
42
use function is_string ;
43
43
use function iterator_to_array ;
44
+ use function method_exists ;
44
45
use function sleep ;
45
46
use function sprintf ;
46
47
use function substr ;
@@ -255,6 +256,7 @@ protected function performSearch(Builder $builder, ?int $offset = null): array
255
256
],
256
257
[
257
258
'$addFields ' => [
259
+ // Metadata field with the total count of documents
258
260
'__count ' => '$$SEARCH_META.count.lowerBound ' ,
259
261
],
260
262
],
@@ -467,7 +469,7 @@ private function getSearchableCollection(Model|EloquentCollection $model): Mongo
467
469
$ model = $ model ->first ();
468
470
}
469
471
470
- assert (in_array (Searchable::class, class_uses_recursive ( $ model) ), sprintf ('Model "%s" must use "%s" trait ' , $ model ::class, Searchable::class));
472
+ assert (method_exists ( $ model, ' searchableAs ' ), sprintf ('Model "%s" must use "%s" trait ' , $ model ::class, Searchable::class));
471
473
472
474
return $ this ->database ->selectCollection ($ model ->searchableAs ());
473
475
}
@@ -480,7 +482,7 @@ private function getIndexableCollection(Model|EloquentCollection $model): MongoD
480
482
}
481
483
482
484
assert ($ model instanceof Model);
483
- assert (in_array (Searchable::class, class_uses_recursive ( $ model) ), sprintf ('Model "%s" must use "%s" trait ' , $ model ::class, Searchable::class));
485
+ assert (method_exists ( $ model, ' indexableAs ' ), sprintf ('Model "%s" must use "%s" trait ' , $ model ::class, Searchable::class));
484
486
485
487
if (
486
488
$ model ->getConnection () instanceof Connection
0 commit comments