diff --git a/typo3/sysext/fluid/Classes/ViewHelpers/Form/AbstractFormFieldViewHelper.php b/typo3/sysext/fluid/Classes/ViewHelpers/Form/AbstractFormFieldViewHelper.php index 8a30786c58806d07048b34684ea7d6cd9032e852..abfe5bb75b0dcc464725194e1fa11d123bd9db35 100644 --- a/typo3/sysext/fluid/Classes/ViewHelpers/Form/AbstractFormFieldViewHelper.php +++ b/typo3/sysext/fluid/Classes/ViewHelpers/Form/AbstractFormFieldViewHelper.php @@ -331,11 +331,7 @@ abstract class AbstractFormFieldViewHelper extends AbstractFormViewHelper $formObject = $this->viewHelperVariableContainer->get( \TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper::class, 'formObject' ); - $propertyName = $this->arguments['property']; - if (is_array($formObject)) { - return isset($formObject[$propertyName]) ? $formObject[$propertyName] : null; - } - return ObjectAccess::getPropertyPath($formObject, $propertyName); + return ObjectAccess::getPropertyPath($formObject, $this->arguments['property']); } /** diff --git a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Form/AbstractFormFieldViewHelperTest.php b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Form/AbstractFormFieldViewHelperTest.php index a4a26d942ee58f22d9209424bae38ba020933e1c..1315f9bca82524fa7dacbe0787e6fdb71af3088f 100644 --- a/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Form/AbstractFormFieldViewHelperTest.php +++ b/typo3/sysext/fluid/Tests/Unit/ViewHelpers/Form/AbstractFormFieldViewHelperTest.php @@ -565,4 +565,31 @@ class AbstractFormFieldViewHelperTest extends \TYPO3\CMS\Fluid\Tests\Unit\ViewHe $actual = $formViewHelper->_call('renderHiddenFieldForEmptyValue'); $this->assertEquals($expected, $actual); } + + /** + * @test + */ + public function getPropertyValueReturnsArrayValueByPropertyPath() + { + $formFieldViewHelper = $this->getAccessibleMock( + \TYPO3\CMS\Fluid\ViewHelpers\Form\AbstractFormFieldViewHelper::class, + ['renderHiddenIdentityField'], + [], + '', + false + ); + + $this->injectDependenciesIntoViewHelper($formFieldViewHelper); + $formFieldViewHelper->_set('arguments', ['property' => 'key1.key2']); + + $this->viewHelperVariableContainer->expects($this->at(0))->method('exists')->with( + \TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper::class, 'formObject' + )->will($this->returnValue(true)); + $this->viewHelperVariableContainer->expects($this->at(1))->method('get')->with( + \TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper::class, 'formObject' + )->will($this->returnValue(['key1' => ['key2' => 'valueX']])); + + $actual = $formFieldViewHelper->_call('getPropertyValue'); + $this->assertEquals('valueX', $actual); + } }