Skip to content

Commit 5863a95

Browse files
authored
Resolve #14 (query with case-insensitive)
1 parent 9807600 commit 5863a95

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/Filters/FiltersPartial.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,22 @@
66

77
class FiltersPartial implements Filter
88
{
9-
public function __invoke(Builder $query, $value, string $property) : Builder
9+
public function __invoke(Builder $query, $value, string $property): Builder
1010
{
11+
$sql = "LOWER({$property}) LIKE ?";
12+
1113
if (is_array($value)) {
12-
return $query->where(function (Builder $query) use ($value, $property) {
14+
return $query->where(function (Builder $query) use ($value, $sql) {
1315
foreach ($value as $partialValue) {
14-
$query->orWhere($property, 'LIKE', "%{$partialValue}%");
16+
$partialValue = strtolower($partialValue);
17+
18+
$query->orWhereRaw($sql, ["%{$partialValue}%"]);
1519
}
1620
});
1721
}
1822

19-
return $query->where($property, 'LIKE', "%{$value}%");
23+
$value = strtolower($value);
24+
25+
return $query->whereRaw($sql, ["%{$value}%"]);
2026
}
2127
}

0 commit comments

Comments
 (0)