From 717ab594f664d94ad88bd9970c92849736690694 Mon Sep 17 00:00:00 2001 From: chris Date: Sat, 8 Nov 2025 13:37:16 +0100 Subject: [PATCH 1/7] Fix property access for field mapping type --- src/Factory/FilterFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Factory/FilterFactory.php b/src/Factory/FilterFactory.php index 60aa38e277..b35845fa66 100644 --- a/src/Factory/FilterFactory.php +++ b/src/Factory/FilterFactory.php @@ -105,6 +105,6 @@ private function guessFilterClass(EntityDto $entityDto, string $propertyName): s $fieldMapping = $entityDto->getClassMetadata()->getFieldMapping($propertyName); - return self::$doctrineTypeToFilterClass[$fieldMapping['type']] ?? TextFilter::class; + return self::$doctrineTypeToFilterClass[$fieldMapping->type] ?? TextFilter::class; } } From 967c0d266640373e0c03b7e4b9d18dfa20ae0ad1 Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 13:48:27 +0100 Subject: [PATCH 2/7] feat: bump min version doctrine/orm --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index ee8f72677d..38e3c0ea77 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "php": ">=8.1", "ext-json": "*", "doctrine/doctrine-bundle": "^2.5|^3.0", - "doctrine/orm": "^2.12|^3.0", + "doctrine/orm": "^2.20.7|^3.0", "symfony/asset": "^5.4|^6.0|^7.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/config": "^5.4|^6.0|^7.0", From 125f6dcd24489905a27b455720ab605c7329bf3f Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 13:53:21 +0100 Subject: [PATCH 3/7] feat: explicit set doctrine/persistence --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 38e3c0ea77..c9461c3b23 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,7 @@ "ext-json": "*", "doctrine/doctrine-bundle": "^2.5|^3.0", "doctrine/orm": "^2.20.7|^3.0", + "doctrine/persistence": "^3.4.3|^4.0", "symfony/asset": "^5.4|^6.0|^7.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/config": "^5.4|^6.0|^7.0", From 1092ab35d5e6832b71e98f8375b78e04a0bbf6c9 Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 13:56:36 +0100 Subject: [PATCH 4/7] feat: explicit set doctrine/lexer --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c9461c3b23..3ade28ebc6 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "ext-json": "*", "doctrine/doctrine-bundle": "^2.5|^3.0", "doctrine/orm": "^2.20.7|^3.0", - "doctrine/persistence": "^3.4.3|^4.0", + "doctrine/lexer": "^2.1.1|^3.0.1", "symfony/asset": "^5.4|^6.0|^7.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/config": "^5.4|^6.0|^7.0", From ec260c425eb71ba597c61566a493c4eba4964953 Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 14:10:44 +0100 Subject: [PATCH 5/7] feat: explicit set doctrine/lexer --- composer.json | 3 +-- src/Factory/FilterFactory.php | 10 +++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 3ade28ebc6..ee8f72677d 100644 --- a/composer.json +++ b/composer.json @@ -15,8 +15,7 @@ "php": ">=8.1", "ext-json": "*", "doctrine/doctrine-bundle": "^2.5|^3.0", - "doctrine/orm": "^2.20.7|^3.0", - "doctrine/lexer": "^2.1.1|^3.0.1", + "doctrine/orm": "^2.12|^3.0", "symfony/asset": "^5.4|^6.0|^7.0", "symfony/cache": "^5.4|^6.0|^7.0", "symfony/config": "^5.4|^6.0|^7.0", diff --git a/src/Factory/FilterFactory.php b/src/Factory/FilterFactory.php index b35845fa66..04290cd352 100644 --- a/src/Factory/FilterFactory.php +++ b/src/Factory/FilterFactory.php @@ -3,6 +3,7 @@ namespace EasyCorp\Bundle\EasyAdminBundle\Factory; use Doctrine\DBAL\Types\Types; +use Doctrine\ORM\Mapping\ClassMetadata; use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Filter\FilterConfiguratorInterface; @@ -105,6 +106,13 @@ private function guessFilterClass(EntityDto $entityDto, string $propertyName): s $fieldMapping = $entityDto->getClassMetadata()->getFieldMapping($propertyName); - return self::$doctrineTypeToFilterClass[$fieldMapping->type] ?? TextFilter::class; + if(method_exists(ClassMetadata::class, 'getFieldMapping')) { + $index = $fieldMapping->type; + } + else { + $index = $fieldMapping['type']; + } + + return self::$doctrineTypeToFilterClass[$index] ?? TextFilter::class; } } From 0659dfe3ce37c882f1881af4aa2dd81f758e5f8b Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 14:23:09 +0100 Subject: [PATCH 6/7] feat: check orm version --- src/Factory/FilterFactory.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Factory/FilterFactory.php b/src/Factory/FilterFactory.php index 04290cd352..c4689a2e38 100644 --- a/src/Factory/FilterFactory.php +++ b/src/Factory/FilterFactory.php @@ -2,6 +2,7 @@ namespace EasyCorp\Bundle\EasyAdminBundle\Factory; +use Composer\InstalledVersions; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping\ClassMetadata; use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; @@ -106,11 +107,10 @@ private function guessFilterClass(EntityDto $entityDto, string $propertyName): s $fieldMapping = $entityDto->getClassMetadata()->getFieldMapping($propertyName); - if(method_exists(ClassMetadata::class, 'getFieldMapping')) { - $index = $fieldMapping->type; - } - else { + if (version_compare(InstalledVersions::getVersion('doctrine/orm'), '3.0', '<')) { $index = $fieldMapping['type']; + } else { + $index = $fieldMapping->type; } return self::$doctrineTypeToFilterClass[$index] ?? TextFilter::class; From 09fc65efedbd8b31710c4ba57e714c0056223090 Mon Sep 17 00:00:00 2001 From: Christopher Georg Date: Sat, 8 Nov 2025 14:24:25 +0100 Subject: [PATCH 7/7] feat: check orm version --- src/Factory/FilterFactory.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Factory/FilterFactory.php b/src/Factory/FilterFactory.php index c4689a2e38..45960435fd 100644 --- a/src/Factory/FilterFactory.php +++ b/src/Factory/FilterFactory.php @@ -4,7 +4,6 @@ use Composer\InstalledVersions; use Doctrine\DBAL\Types\Types; -use Doctrine\ORM\Mapping\ClassMetadata; use EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection; use EasyCorp\Bundle\EasyAdminBundle\Collection\FilterCollection; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Filter\FilterConfiguratorInterface;