diff --git a/Form/Type/DynamicFormType.php b/Form/Type/DynamicFormType.php index 9e0e7361..d4567a3c 100644 --- a/Form/Type/DynamicFormType.php +++ b/Form/Type/DynamicFormType.php @@ -13,6 +13,8 @@ use Sulu\Bundle\FormBundle\Dynamic\Checksum; use Sulu\Bundle\FormBundle\Dynamic\FormFieldTypePool; +use Sulu\Bundle\FormBundle\Dynamic\Types\FreeTextType; +use Sulu\Bundle\FormBundle\Dynamic\Types\HeadlineType; use Sulu\Bundle\FormBundle\Entity\Dynamic; use Sulu\Bundle\FormBundle\Entity\Form; use Sulu\Bundle\FormBundle\Exception\FormNotFoundException; @@ -113,12 +115,18 @@ public function buildForm(FormBuilderInterface $builder, array $options) $options['attr']['placeholder'] = $placeholder; } + $formFieldType = $this->typePool->get($field->getType()); + // required - if ($field->getRequired()) { + if ( + !$formFieldType instanceof FreeTextType + && !$formFieldType instanceof HeadlineType + && $field->getRequired() + ) { $options['constraints'][] = new NotBlank(); } - $this->typePool->get($field->getType())->build($builder, $field, $locale, $options); + $formFieldType->build($builder, $field, $locale, $options); } // Add hidden locale. (de, en, ...)