diff --git a/src/Orm/EntityRepository.php b/src/Orm/EntityRepository.php index bd00479f40..042dd0884c 100644 --- a/src/Orm/EntityRepository.php +++ b/src/Orm/EntityRepository.php @@ -122,7 +122,8 @@ private function addSearchClause(QueryBuilder $queryBuilder, SearchDto $searchDt $queryBuilder->setParameter($parameterName, $dqlParameters['uuid_query'], 'ulid'); } elseif ($propertyConfig['is_text'] || $propertyConfig['is_integer']) { $parameterName = sprintf('query_for_text_%d', $queryTermIndex); - $queryTermConditions->add(sprintf('LOWER(%s.%s) LIKE :%s', $entityName, $propertyConfig['property_name'], $parameterName)); + // concatenating an empty string is needed to avoid issues on PostgreSQL databases (https://github.com/EasyCorp/EasyAdminBundle/issues/6290) + $queryTermConditions->add(sprintf('LOWER(CONCAT(%s.%s, \'\')) LIKE :%s', $entityName, $propertyConfig['property_name'], $parameterName)); $queryBuilder->setParameter($parameterName, $dqlParameters['text_query']); } elseif ($propertyConfig['is_json'] && !$isPostgreSql) { // neither LOWER() nor LIKE() are supported for JSON columns by all PostgreSQL installations