From 9738b133d2a4e35d2157fb9a2d485f72bbb2cd88 Mon Sep 17 00:00:00 2001 From: Craig Williams Date: Thu, 2 Nov 2023 16:13:12 +0000 Subject: [PATCH] Make user filtering case-insensitive --- src/ServicesProvider/ServicesProvider.php | 1 + src/Sprunje/UserSprunje.php | 48 +++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 src/Sprunje/UserSprunje.php diff --git a/src/ServicesProvider/ServicesProvider.php b/src/ServicesProvider/ServicesProvider.php index 1dafc63..027de87 100644 --- a/src/ServicesProvider/ServicesProvider.php +++ b/src/ServicesProvider/ServicesProvider.php @@ -43,6 +43,7 @@ class ServicesProvider $container->extend('classMapper', function ($classMapper, $c) { $classMapper->setClassMapping('activity_sprunje', 'UserFrosting\Sprinkle\UFTweaks\Sprunje\ActivitySprunje'); $classMapper->setClassMapping('user', 'UserFrosting\Sprinkle\UFTweaks\Database\Models\User'); + $classMapper->setClassMapping('user_sprunje', 'UserFrosting\Sprinkle\Organisations\Sprunje\UserSprunje'); return $classMapper; }); diff --git a/src/Sprunje/UserSprunje.php b/src/Sprunje/UserSprunje.php new file mode 100644 index 0000000..0279716 --- /dev/null +++ b/src/Sprunje/UserSprunje.php @@ -0,0 +1,48 @@ +orSeparator, $value); + $query->where(function ($query) use ($values) { + foreach ($values as $value) { + $likeValue = '%' . mb_strtolower($value) . '%'; + $query->orWhereRaw('LOWER(first_name) LIKE ?', $likeValue) + ->orWhereRaw('LOWER(last_name) LIKE ?', $likeValue) + ->orWhereRaw('LOWER(email) LIKE ?', $likeValue) + ->orWhereRaw('LOWER(user_name) LIKE ?', $likeValue); + } + }); + + return $this; + } +}