summaryrefslogtreecommitdiff
path: root/app/Services/DatatablesService.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-01-06 19:23:00 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-01-06 19:23:00 +0000
commitfbbe964bc80e7afdf862fef357b9aa52ded269cb (patch)
tree30eac5089d9fc97e5430b9a3307877634d741387 /app/Services/DatatablesService.php
parentaf2825862addd398202103e808cfcad2c46ea40d (diff)
downloadwebtrees-fbbe964bc80e7afdf862fef357b9aa52ded269cb.tar.gz
webtrees-fbbe964bc80e7afdf862fef357b9aa52ded269cb.tar.bz2
webtrees-fbbe964bc80e7afdf862fef357b9aa52ded269cb.zip
Add query-builder macro for substring-search
Diffstat (limited to 'app/Services/DatatablesService.php')
-rw-r--r--app/Services/DatatablesService.php24
1 files changed, 1 insertions, 23 deletions
diff --git a/app/Services/DatatablesService.php b/app/Services/DatatablesService.php
index 2a73274318..ed137d9924 100644
--- a/app/Services/DatatablesService.php
+++ b/app/Services/DatatablesService.php
@@ -29,13 +29,6 @@ use function strtr;
*/
class DatatablesService
{
- // We need to escape special characters in a LIKE clause, so we can search for them.
- private const ESCAPE_LIKE = [
- '%' => '\\%',
- '_' => '\\_',
- '\\' => '\\\\',
- ];
-
/**
* Apply filtering and pagination to a query, and generate a response suitable for datatables.
*
@@ -61,11 +54,9 @@ class DatatablesService
// Filtering
if ($search !== '') {
- $search = $this->escapeLike($search);
-
$query->where(function (Builder $query) use ($search, $search_columns): void {
foreach ($search_columns as $search_column) {
- $query->orWhere($search_column, 'LIKE', '%' . $search . '%');
+ $query->orWhereContains($search_column, $search);
}
});
}
@@ -102,17 +93,4 @@ class DatatablesService
'data' => $data,
]);
}
-
- /**
- * Escape a search term, so we can use it in a LIKE clause.
- * This lets us search for percent signs, underscores, etc.
- *
- * @param string $string
- *
- * @return string
- */
- private function escapeLike(string $string): string
- {
- return strtr($string, self::ESCAPE_LIKE);
- }
}