2016-09-18 5 views
0

В моем приложении Symfony 2 я получил следующий код рендеринга формы:Symfony2 и Twig форма рендеринга в случае - еще условие

{{ form_start(form) }} 
{{ form_errors(form) }} 
    <div class="form-group"> 
    {{ form_label(form.title) }} 
    {{ form_widget(form.title) }} 
    </div> 
    <div class="form-group"> 
    {{ form_label(form.message) }} 
    {{ form_widget(form.message) }} 
    </div> 
    {% if extras == true %} //this block should be rendered only if extras var is true 
    <div class="form-group"> 
     {{ form_label(form.description) }} 
     {{ form_widget(form.description) }} 
    </div> 
    {% endif %} 
{{ form_end(form) }} 

Проблема заключается в том, что я получаю оказанные {{form_widget (form.description)} }, даже если мои extras var являются ложными, а не ко всем другим полям формы, но где-то внизу формы, которая, очевидно, является ошибкой. Как сделать это рендерингом только в том случае, если extras истинно и полностью исчезает со страницы, если дополнительные данные ложны? Спасибо.

ответ

1

Все остальные поля формы автоматически добавляются в конец формы по умолчанию. По умолчанию он вызывает {{ form_rest() }}. Используйте этот код, чтобы предотвратить такое поведение:

{{ form_end(form, {'render_rest': false}) }} 

http://symfony.com/doc/current/reference/forms/twig_reference.html#form-end-view-variables

+0

Он работает, спасибо. Btw, он оставляет пустое пространство в нижней части формы, где раньше он делал нежелательные поля формы. Разве вы не знаете, как это исправить? – Masha

Смежные вопросы