Fix search and psql like queries need to be ilike for case insensitivity

This commit is contained in:
2024-07-06 22:56:51 +10:00
parent 61fe84498a
commit 70e94bf6e6
7 changed files with 33 additions and 33 deletions

View File

@@ -189,27 +189,27 @@ class User extends Authenticatable implements IDs
{
// Build our where clause
// First Name, Last name
if (preg_match('/\ /',$term)) {
if (preg_match('/\s+/',$term)) {
[$fn,$ln] = explode(' ',$term,2);
$query->where(function($query1) use ($fn,$ln,$term) {
$query1->where(function($query2) use ($fn,$ln) {
return $query2
->where('firstname','like','%'.$fn.'%')
->where('lastname','like','%'.$ln.'%');
->where('firstname','ilike','%'.$fn.'%')
->where('lastname','ilike','%'.$ln.'%');
});
});
} elseif (is_numeric($term)) {
$query->where('users.id','like','%'.$term.'%');
} elseif (preg_match('/\@/',$term)) {
$query->where('email','like','%'.$term.'%');
} elseif (preg_match('/@/',$term)) {
$query->where('email','ilike','%'.$term.'%');
} else {
$query
->Where('firstname','like','%'.$term.'%')
->orWhere('lastname','like','%'.$term.'%');
->Where('firstname','ilike','%'.$term.'%')
->orWhere('lastname','ilike','%'.$term.'%');
}
return $query;