diff --git a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig
index a3484d9036bec..e2061c29ba305 100644
--- a/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig
+++ b/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig
@@ -204,6 +204,12 @@
{%- endif -%}
{%- endif -%}
<{{ element|default('label') }}{% if label_attr %}{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}{% endif %}>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}{{- form_errors(form) -}}{{ element|default('label') }}>
+ {%- else -%}
+ {%- if errors|length > 0 -%}
+
+ {{- form_errors(form) -}}
+
+ {%- endif -%}
{%- endif -%}
{%- endblock form_label %}
diff --git a/src/Symfony/Component/Form/Tests/AbstractBootstrap4LayoutTest.php b/src/Symfony/Component/Form/Tests/AbstractBootstrap4LayoutTest.php
index ec97577818d4d..b9e8a38e0f403 100644
--- a/src/Symfony/Component/Form/Tests/AbstractBootstrap4LayoutTest.php
+++ b/src/Symfony/Component/Form/Tests/AbstractBootstrap4LayoutTest.php
@@ -182,6 +182,16 @@ public function testErrors()
);
}
+ public function testErrorWithNoLabel()
+ {
+ $form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\TextType', array('label'=>false));
+ $form->addError(new FormError('[trans]Error 1[/trans]'));
+ $view = $form->createView();
+ $html = $this->renderLabel($view);
+
+ $this->assertMatchesXpath($html, '//span[.="[trans]Error[/trans]"]');
+ }
+
public function testCheckedCheckbox()
{
$form = $this->factory->createNamed('name', 'Symfony\Component\Form\Extension\Core\Type\CheckboxType', true);