2つのTextType
フィールドを含むSymfonyフォームがあります。特定のチェックがfalse
と評価された場合、input
フィールドを表示せずに、フィールドの静的コンテンツを出力し、代わりにhidden
フィールドとしてフォームフィールドを含めます。 。どうやってやるの?
HiddenType
を使用するか、テンプレートのフィールドを非表示にすることができます。
{{ 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) }}
または、FormTypeでFormEvents::PRE_SET_DATA
のようなFormEventsを使用できます。 (doc)
フォームフィールドがすでにレンダリングされているふりをすることで、フォームフィールドの出力を防ぐことができます。
{{ form_start(form) }}
{% if someValue == true %}
{% do form.fieldName.setRendered() %}
{% endif %}
{{ form_end(form) }}