У меня есть форма Symfony, которая включает в себя два поля TextType
. Если определенная проверка оценивается как false
, я не хочу отображать поля input
, но выводить статическое содержимое поля и вместо этого включать поля формы как hidden
. Как я могу это сделать?Как скрыть поля формы в шаблоне ветви?
3
A
ответ
6
вы можете использовать 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) }}
или вы можете использовать FormEvents как FormEvents::PRE_SET_DATA
в FormType. (doc)
2
Вы можете предотвратить выход для поля формы, делая вид, что это было уже вынесено:
{{ form_start(form) }}
{% if someValue == true %}
{% do form.fieldName.setRendered() %}
{% endif %}
{{ form_end(form) }}
+0
Это приятно знать. Благодаря! –
Я надеялся на какой-то переключатель в 'form_row', но я подозреваю, что это не реализовано в Symfony ... –
@ GottliebNotschnabel на самом деле это :), я обновил свой ответ – b3da
Нет, я имел в виду, что не скрывал его с помощью CSS, но предоставлял его как скрытое поле. Но я видел, что ваш второй подход позволяет это. Большое спасибо! –