As default, Symfony 4 does not allow the set raw label text for form elements. I needed this when I want to show terms of use checkbox in a form. I found a workaround solution to accomplish this.
FormType Source Code:
/* ... */ class RegistrationFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('termsOfUse', CheckboxType::class, [ 'mapped' => false, 'label' => 'I agree and accept #TERMS_OF_USE_LINK#', 'constraints' => new IsTrue(), ]); /* ... */ } }
Twig Template Source Code
{{ form_start(form) }} {% set termsOfUseFormGroup %} {{ form_row(form.termsOfUse) }} {% endset %} {{ termsOfUseFormGroup|replace({'#TERMS_OF_USE_LINK#':'<a href="#">Terms of Use</a>'})|raw }} {{ form_end(form) }}
To explain briefly, I set rendered terms of use form group content (which is {{ form_row(form.termsOfUse) }}) to a variable (which is termsOfUseFormGroup) and replace #TERM_OF_USE_LINK# string to a link.