diff --git a/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php b/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php index c8687d4af474..01835a33d56a 100644 --- a/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php +++ b/src/Symfony/Component/Form/Extension/Csrf/Type/FormTypeCsrfExtension.php @@ -79,6 +79,23 @@ public function buildView(FormView $view, FormInterface $form) } } + /** + * Removes CSRF field from the form view if it's not root + * + * @param FormView $view The form view + * @param FormInterface $form The form + */ + public function buildViewBottomUp(FormView $view, FormInterface $form) + { + if ($view->hasParent() && $form->hasAttribute('csrf_field_name')) { + $name = $form->getAttribute('csrf_field_name'); + + if (isset($view[$name])) { + unset($view[$name]); + } + } + } + /** * {@inheritDoc} */