From d8049255da671305d43ff9b3d52a8a614bf9e7fa Mon Sep 17 00:00:00 2001 From: Guillaume Sainthillier Date: Fri, 10 Jul 2026 11:16:45 +0200 Subject: [PATCH] Fix TypeError when calling Crud::setFilters(null) The method signature accepts null but forwarded the value unchanged to CrudDto::setFiltersConfig(), whose parameter is not nullable. Null now means 'no filters' and is normalized to an empty FilterConfigDto. --- src/Config/Crud.php | 4 +++- tests/Unit/Config/CrudTest.php | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Config/Crud.php b/src/Config/Crud.php index 3da33a1d24..7b5b413bd8 100644 --- a/src/Config/Crud.php +++ b/src/Config/Crud.php @@ -288,7 +288,9 @@ public function autocomplete(bool $enable = true, ?callable $callback = null, ?s public function setFilters(?FilterConfigDto $filters): self { - $this->dto->setFiltersConfig($filters); + // 'null' means "no filters", which is represented by an empty filter config + // (CrudDto::setFiltersConfig() doesn't accept null values) + $this->dto->setFiltersConfig($filters ?? new FilterConfigDto()); return $this; } diff --git a/tests/Unit/Config/CrudTest.php b/tests/Unit/Config/CrudTest.php index 0355941314..294a3764dd 100644 --- a/tests/Unit/Config/CrudTest.php +++ b/tests/Unit/Config/CrudTest.php @@ -5,6 +5,7 @@ use EasyCorp\Bundle\EasyAdminBundle\Config\Action; use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; use EasyCorp\Bundle\EasyAdminBundle\Config\Option\ClickTrigger; +use EasyCorp\Bundle\EasyAdminBundle\Dto\FilterConfigDto; use PHPUnit\Framework\TestCase; use Symfony\Component\Translation\TranslatableMessage; @@ -308,4 +309,12 @@ public function testSetDefaultRowActionDefaultTriggerWithInvalidString(string $c $crudConfig = Crud::new(); $crudConfig->setDefaultRowActionTrigger($clickTrigger); } + + public function testSetFiltersAcceptsNull(): void + { + $crudConfig = Crud::new(); + $crudConfig->setFilters(null); + + $this->assertInstanceOf(FilterConfigDto::class, $crudConfig->getAsDto()->getFiltersConfig()); + } }