diff --git a/Datatable/Filter/AbstractFilter.php b/Datatable/Filter/AbstractFilter.php index 49cc2de6..1c886dfb 100644 --- a/Datatable/Filter/AbstractFilter.php +++ b/Datatable/Filter/AbstractFilter.php @@ -130,7 +130,7 @@ public function configureOptions(OptionsResolver $resolver) $resolver->setAllowedTypes('placeholder', 'bool'); $resolver->setAllowedTypes('placeholder_text', array('null', 'string')); - $resolver->setAllowedValues('search_type', array('like', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull')); + $resolver->setAllowedValues('search_type', array('like', '%like', 'like%', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull')); return $this; } @@ -404,6 +404,14 @@ protected function getExpression(Composite $expr, QueryBuilder $qb, $searchType, $expr->add($qb->expr()->like($searchField, '?'.$parameterCounter)); $qb->setParameter($parameterCounter, '%'.$searchValue.'%'); break; + case '%like': + $expr->add($qb->expr()->like($searchField, '?'.$parameterCounter)); + $qb->setParameter($parameterCounter, '%'.$searchValue); + break; + case 'like%': + $expr->add($qb->expr()->like($searchField, '?'.$parameterCounter)); + $qb->setParameter($parameterCounter, $searchValue.'%'); + break; case 'notLike': $expr->add($qb->expr()->notLike($searchField, '?'.$parameterCounter)); $qb->setParameter($parameterCounter, '%'.$searchValue.'%'); diff --git a/Datatable/Options.php b/Datatable/Options.php index 3c0c9162..fa043ea1 100644 --- a/Datatable/Options.php +++ b/Datatable/Options.php @@ -318,7 +318,7 @@ public function configureOptions(OptionsResolver $resolver) $resolver->setAllowedTypes('global_search_type', 'string'); $resolver->setAllowedValues('individual_filtering_position', array('head', 'foot', 'both')); - $resolver->setAllowedValues('global_search_type', array('like', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull')); + $resolver->setAllowedValues('global_search_type', array('like', '%like', 'like%', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull')); return $this; }