diff --git a/src/Filter/Like.php b/src/Filter/Like.php index 84c93eb258e9525c73ea706d5aa5573517d37730..dc44862cdc9d5fab4d6cfc11a15f98331934f35e 100644 --- a/src/Filter/Like.php +++ b/src/Filter/Like.php @@ -5,16 +5,24 @@ declare(strict_types=1); namespace IQDEV\Packages\DoctrineHttpFilter\Filter; use Doctrine\ORM\QueryBuilder; +use IQDEV\Packages\DoctrineHttpFilter\Exception\FilterParameterValueIsNullException; use IQDEV\Packages\DoctrineHttpFilter\HttpFilter; final class Like extends HttpFilter { + /** @throws FilterParameterValueIsNullException */ public function addToQuery(QueryBuilder $queryBuilder): QueryBuilder { $queryBuilder->where( - $this->getColumn() . ' LIKE \'%' . $this->getHttpValue() . '%\'', + $this->getColumn() . ' LIKE :' . $this->getParameterKey(), ); + if ($this->getHttpValue() === null) { + throw new FilterParameterValueIsNullException($this->field); + } + + $queryBuilder->setParameter($this->getParameterKey(), '%' . $this->getHttpValue() . '%'); + return $queryBuilder; } }