diff --git a/src/View/Helper/FormHelper.php b/src/View/Helper/FormHelper.php index edd6a6057a3..f27900b2ecd 100644 --- a/src/View/Helper/FormHelper.php +++ b/src/View/Helper/FormHelper.php @@ -2435,7 +2435,7 @@ protected function _secureFieldName($name) $parts = array_map(function ($el) { return trim($el, ']'); }, $parts); - return $parts; + return array_filter($parts, 'strlen'); } /** diff --git a/tests/TestCase/View/Helper/FormHelperTest.php b/tests/TestCase/View/Helper/FormHelperTest.php index 2dfeabdbf73..f8f172ab27c 100644 --- a/tests/TestCase/View/Helper/FormHelperTest.php +++ b/tests/TestCase/View/Helper/FormHelperTest.php @@ -1746,7 +1746,11 @@ public function testSecuredInputCustomName() $this->Form->select('select_box', [1, 2], [ 'name' => 'Option[General.select_role]', ]); - $expected = ['Option.General.default_role', 'Option.General.select_role']; + $expected[] = 'Option.General.select_role'; + $this->assertEquals($expected, $this->Form->fields); + + $this->Form->text('other.things[]'); + $expected[] = 'other.things'; $this->assertEquals($expected, $this->Form->fields); }