diff --git a/typo3/sysext/extbase/Classes/Service/FlexFormService.php b/typo3/sysext/extbase/Classes/Service/FlexFormService.php index a5c443cd4adbb60583e176054139c6dbc792cc06..6b1471afa26b9f265cb0f4c18ad08fe92085db80 100644 --- a/typo3/sysext/extbase/Classes/Service/FlexFormService.php +++ b/typo3/sysext/extbase/Classes/Service/FlexFormService.php @@ -93,7 +93,8 @@ class FlexFormService implements \TYPO3\CMS\Core\SingletonInterface $currentNode = &$currentNode[$nodeKeyParts[$i]]; } $newNode = [next($nodeKeyParts) => $nodeValue]; - $currentNode = $this->walkFlexFormNode($newNode, $valuePointer); + $subVal = $this->walkFlexFormNode($newNode, $valuePointer); + $currentNode[key($subVal)] = current($subVal); } elseif (is_array($nodeValue)) { if (array_key_exists($valuePointer, $nodeValue)) { $return[$nodeKey] = $nodeValue[$valuePointer]; diff --git a/typo3/sysext/extbase/Tests/Unit/Service/FlexFormServiceTest.php b/typo3/sysext/extbase/Tests/Unit/Service/FlexFormServiceTest.php index 37430ce029f69b577d204ea8c9b6212f0925ba00..c3d3aba49302d211b2784fac6d4b8256198ec105 100644 --- a/typo3/sysext/extbase/Tests/Unit/Service/FlexFormServiceTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Service/FlexFormServiceTest.php @@ -67,6 +67,12 @@ class FlexFormServiceTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase <field index="bum"> <value index="vDEF">Bum1-Value</value> </field> + <field index="dot.one"> + <value index="vDEF">dot.one-Value</value> + </field> + <field index="dot.two"> + <value index="vDEF">dot.two-Value</value> + </field> </el> </itemType> <itemType index="_TOGGLE">0</itemType> @@ -97,7 +103,11 @@ class FlexFormServiceTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase 'bar' => [ 1 => [ 'baz' => 'Baz1-Value', - 'bum' => 'Bum1-Value' + 'bum' => 'Bum1-Value', + 'dot' => [ + 'one' => 'dot.one-Value', + 'two' => 'dot.two-Value', + ], ], 2 => [ 'baz' => 'Baz2-Value',