diff --git a/sources/Forms/Dependency/DependencyNode.php b/sources/Forms/Dependency/DependencyNode.php index d82eacca2..452293264 100644 --- a/sources/Forms/Dependency/DependencyNode.php +++ b/sources/Forms/Dependency/DependencyNode.php @@ -51,7 +51,7 @@ class DependencyNode implements \Iterator { $aResult = []; foreach ($this as $oChildNode) { - $aResult = array_merge($aResult, $oChildNode->GetSubNodes()); + $aResult = array_merge($aResult, [$oChildNode], $oChildNode->GetSubNodes()); } return $aResult; diff --git a/sources/Forms/FormType/Base/FormBuilder.php b/sources/Forms/FormType/Base/FormBuilder.php index c5055c547..b888653b0 100644 --- a/sources/Forms/FormType/Base/FormBuilder.php +++ b/sources/Forms/FormType/Base/FormBuilder.php @@ -32,6 +32,10 @@ class FormBuilder implements FormBuilderInterface, \IteratorAggregate { $this->oDependencies = new DependencyGraph(); + $this->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { + $this->Finalize(); + }); + $this->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) { $this->aModelData = []; }); @@ -72,6 +76,7 @@ class FormBuilder implements FormBuilderInterface, \IteratorAggregate private function HideField(FormInterface $oForm, string $sName): void { + \IssueLog::Info("Hiding field $sName"); $oForm->add($sName, HiddenType::class, ['mapped' => false]); }