I have a Symfony form that includes two TextType
fields. If a certain check evaluates to false
, I don't want to display the input
fields but output the static content of the field and include the form fields as hidden
fields instead. How can I do that?
You can prevent any output for the form field by pretending, that it was already rendered:
{{ form_start(form) }}
{% if someValue == true %}
{% do form.fieldName.setRendered() %}
{% endif %}
{{ form_end(form) }}
you can use HiddenType
,
or hide field in template:
{{ form_start(form) }}
{% if someValue == true %}
{{ form_widget(form.fieldName) }}
{% else %}
{{ form_widget(form.fieldName, { 'attr': {'class': 'hidden-row'} }) }}
{% endif %}
{# other fields... #}
{{ form_end(form) }}
or you can use FormEvents like FormEvents::PRE_SET_DATA
in FormType.
(doc)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With